# NormalMap Generator Online

### Related tags

Miscellaneous NormalMap-Online

# NormalMap-Online

NormalMap Generator Online

A free tool to create normal maps.

You may use all normal maps you create here as you see fit. They are yours and will not be saved anywhere. The scripts are running on your machine only.

Please, as I have very limited time on this project, contribute via pull requests if you are able to.

• #### Proposal for normal maps from pictures

There is a way to make normal maps from 4 pictures in photoshop where the light shines from different directions each time.

Step 1: Basically you take all images and grayscale them. Then you have the grayscaled images that are lighted from above, from the left, from below and lighted from the right.

Step 2: Create an image where the red channel is the light from the left and the green channel the light from above. (We name this image `A` here)

Step 3: `rgb = (1 - rgb) * 0.5;` (In the tutorial they use something more complex but this gets very near to those results)

Step 4: Create an image where the red channel is the light from the right and the green channel is the light from below. (We name this image `B`)

Step 5: `rgb = rgb * 0.5 + 0.5` (Same applies here)

Step 6:

``````if(B.r <= 0.5)
result.r = (2 * B.r * A.r);
else
result.r = 1 - ((1 - (2 * (B.r - 0.5))) * (1 - A.r));
``````

Now repeat this for each channel except alpha.

This blending method is called "Overlay" in Photoshop or "Hard light" in Gimp. `A` is basically the base and `B` is the mask.

more details here: https://www.dropbox.com/s/ez2xhir23kkg6c9/Pixel%20blend%20mode%20algorithms.pdf?dl=0

(Note that I modified the algorithm to use a range from 0 to 1 instead of 0 to 255 or 256. This also reduces the `/ 256` to `/ 1` or basically nothing)

Step 7: Fill the blue channel with some value. A lighter blue will yield a smoother normal map. So let the user decide on this value. Best would be to start with 0.5

Further details can be found here: http://www.zarria.net/nrmphoto/nrmphoto.html

opened by WebFreak001 3
• #### Possible Size Limit

Hello Christian. I was trying to upload an 8192x8192 image to produce map, but I could only get the bottom left corner part. After I resized the original image to 4096x4096, everything works fine. I don't know if it is an known issue/limitation. And thanks for your great work.

enhancement
opened by Neur1n 2
• #### Znorm

Add the option "Z Range" that, when checked, changes the Z (blue) channel's range from the default of 0 to 1, to the range -1 to 1. This is the range used by many applications nowadays, including Unity and on the popular Learn OpenGL site.

opened by erich666 1

Until a license is added all the code in this repository is considered copyrighted. Something like https://choosealicense.com/ can be used to determine which license to use for this project. I would recommend the MIT license.

opened by ghost 1
• #### Zoom or magnify Preview

A zoombar or magnify for the 3d preview. On a 512 x 512 texture with my browser at fullscreen it's hard to see what's going on with something like a brick texture etc.

opened by cpetry 0
• #### Use original File Name with Suffix when saving instead of how it is currently.

Ideally DisplacementMap.png, NormalMap.png, etc upon saving, the filename should be the same as the original file with a suffix.

For example if I select a file called Example.png and click download all. It should save it as Example_DisplacementMap.png, Example_NormalMap.png.

This would save from having to rename every single file right away after editing.

opened by DeathWrench 0
• #### Question about the displacement and specular functions.

Hi there!

I just wanted to know the algorithm you've used in the displacement and specular functions. I want to translate into python, so I don't know much about js.

For both functions you transform to grayscale using this function: `v = 0.2126*r + 0.7152*g + 0.0722*b`

For the displacement map I see the `this.contrastImage` function but when I try to use console log inside it, it does not show anything. Can you help me clear how the displacement and the specular function works pixel-wise? Thank you.

opened by AeroDEmi 1
• #### batch doesnt work at all

Thanks <3 edit: Version 96.0.4664.93 (Official Build) (64-bit)

opened by Luke-L 0
• #### Support for Roughness Maps

Would it be possible to add support for Roughness maps? I have frequently used this tool over the past few years, but lately I have been doing more things with PBR workflows, so I was wondering if it would be possible to add an option for generating roughness maps, since the specular maps are not compatible with how roughness works.

enhancement help wanted
opened by zauberparacelsus 0
• #### NormalMap Online upload issue

Hello, I took NormalMap Online for a test drive and discovered a glitch within Upload Pictures mode, all tiles function except the tile for bottom lit imagery. I tried uploading various images to that tile, it's related to the file, and I tried on different computers, not related to browser or PC. Thanks if someone can troubleshoot, contacted Christian Petry, who is presently a busy guy at home with a second child on the way ;^)

bug help wanted
opened by benjyvc 0
###### This repo contains solutions to coding questions available online on coding platforms like - Codeforces, Codechef, URI Online Judge, and Hackerrank.

CPP_Soln This repo contains solutions to coding questions available online on coding platforms like - Codeforces, Codechef, URI Online Judge , LeetCod

4 Nov 3, 2022
###### Emulator for EvE Online Crucible expansion

EVEmu - An EVE Online Emulator Introduction EVEmu is a work-in-progress server emulator for the space MMO EVE Online. This is an educational project.

111 Dec 5, 2022
###### A fork of Wraith Cyborg, the Call of Duty: Online Asset Exporter

NOTE: No support is provided for this, it was updated for a friend who works on a CoD OL Mod and it working for him was all that mattered, it is provi

6 Jan 26, 2022
71 Oct 14, 2021
###### A simple Z-Machine implementation in a single C file. Now with online multiplayer! :)

This is an implementation of Infocom's Z-Machine. The Z-Machine is a virtual machine that's something like a high-level CPU. To keep their games portable and easier to write, Infocom's games all use this fake processor and ship with a platform-specific Z-Machine "emulator" ... so a game could run wherever someone had implemented the Z-Machine.

92 Dec 28, 2022
###### Minimal-ish implementation of Unreal Online Subsystem + ImGui UI

Minimal-ish implementation of Unreal Online Subsystem + ImGui UI

4 Mar 14, 2022
###### Online multi-agent trajectory planner using linear safe corridor (LSC)

lsc_planner This package presents an efficient multi-agent trajectory planning algorithm which generates safe trajectories in obstacle-dense environme

33 Dec 27, 2022
###### GTA Online survival missions in Single Player mode

SurvivalsModCPPVersion You liked the survival missions from GTA Online? Well, me too. This mod aims to recreate the same gamemode in Single Player mod

1 Nov 23, 2021

56 Jan 1, 2023
###### This is a C plus plus coding template for Compitative programming. This template is very optimized for the Online Judgment

C-plusplus-compitative-Programming-Template Tech We Used C++ Features Easy to compile Easy debug facility Analysised and optimized base template Steps

15 Jan 27, 2022
###### A simple tool used to upgrade things quicker in the online game Rust.

ex0 Rust Tool ??️ What is this? ⚡ This is a simple script with multiple tools such as a code enterer and a auto upgrade feature! ??️ Features ⚡ Any se

4 Aug 20, 2022
###### PoC that fixes two GTA Online bugs and drastically improves load times for CPU-bound systems

Project status Officially fixed by R* 2021-03-16 :) PoC that fixes two GTA Online bugs and drastically improves load times for CPU-bound systems All a

2.8k Jan 5, 2023
###### Hidden Eye is an all in one tool that can be used to perform a variety of online attacks on user accounts

Hidden Eye is an all in one tool that can be used to perform a variety of online attacks on user accounts. It’s well loaded, therefore it can be used as keylogger (keystroke logging), phishing tool, information collector, social engineering tool, etc.

0 Jun 24, 2022
###### Experimental Worms Armageddon WormKit module that implements real-time online multiplayer for racing schemes

wkRealTime v.0.0.4d Experimental Worms Armageddon WormKit module that implements real-time online multiplayer for racing schemes. Installation Place w

15 Jul 12, 2022
###### DigiMahal is the First Project of Our Team in Sharif University of Technology for Basics of Programming That in this Code we Implemented an Online Shop like DigiKala

DigiMahal is the First Project of Our Team in Sharif University of Technology for Basics of Programming That in this Code we Implemented an Online Shop like DigiKala.

3 Jul 23, 2022
###### This is our take on the digitalisation of the board game "b00le0", where you can play versus our AI, or against one of your friends in an online match.

This is our take on the digitalisation of the board game "b00le0", where you can play versus our AI, or against one of your friends in an online match.

22 Dec 8, 2022
###### Single-header, ranges-compatible generator type built on C++20 coroutines

generator Single-header, ranges-compatible generator type built with C++20 coroutines. A generator allows implementing sequence producers which are te

39 Dec 20, 2022
###### Run-time program generator embedded in C++

Run-time program generator embedded in C++

25 Aug 5, 2022
###### GPU 3D signed distance field generator, written with DirectX 11 compute shader

GPU SDF Generator GPU 3D signed distance field generator, written with DirectX 11 compute shader Building git clone --recursive https://github.com/Air

30 Dec 13, 2022