Bump / Normal / Cube (Mapping)

Blitz3D Forums/Blitz3D Programming/Bump / Normal / Cube (Mapping)

.rIKmAN.(Posted 2004) [#1]
This is taken from my post at BC.com as I know some people only visit the official forums....

I`ve been searching through the forums (bc.com & bb.com)and a lot of the posts are quite old and confusing as they come from a time when these features were either not implemented (and people were coding work-arounds) or half-implemented (meaning the method of using them has since changed).
Could any of you guys point me (and others I`m sure) to any info on these techniques, demos (Blitz or otherwise).

Basically I wanna understand the differences between them all and the corresponding Blitz commands / methods.

Here is a good Cube Mapping Tutorial, its in C++/OGL but the first part helps you understand the method behind it: http://developer.nvidia.com/object/cube_map_ogl_tutorial.html

Also, what is the best way to create the high and low poly models that are needed? Is there a tool to reduce polys from a high poly model or is it an arduos task of creating the basic low poly model, saving, makie it high poly, take the normal map and apply to the previously saved low poly model.

Cheers all!


N(Posted 2004) [#2]
is it an arduos task of creating the basic low poly model, saving, makie it high poly, take the normal map and apply to the previously saved low poly model.


Some people make the high poly model first, since it's typically easier to just create a cage around the high poly mesh contrary to modelling the high poly mesh and trying to make it useable on the already-made low poly mesh.

Using a tool to reduce the polygons on a model is, usually, bad practice and can result in a near-unusable or crappy mesh a lot of the time.

The best normal mappers you can download for free are Orb and ATI's normal mapping programs (my opinion). I use Orb, because it produces much nicer results much faster, but that's a matter of opinion so try both before deciding. I'd recommend avoiding nvidia's normal mapper plugin for 3D Studio Max, since last I heard you had to UVW map the high poly mesh as well as the low poly mesh (something that shouldn't have to be done) in order for it to generate the normal map- it may have changed or it may not be true at all, I can't say for a fact, so you may as well try it too.

what is the best way to create the high and low poly models that are needed?


I prefer subdividing a control mesh to make my high poly models, some people prefer NURBs, spline cages, patches, meta-balls, etc. really whatever floats your boat. As for the low poly mesh, just make it with your favorite tool.


.rIKmAN.(Posted 2004) [#3]
Hey Noel,

I have tried Orb and it just crashed, although admittedly thats more than likely down to something I did!

I found this site recently which is quite helpful: http://www.monitorstudios.com/bcloward/tutorials_normal_maps1.html

I used the NVidia DDS Photoshop plugin to convert a greyscale image into a normal map, then applied that in Blitz - it looked ok, although the texture was all fudged, which is why I need to read up on UV mapping.

I have no artistic skill at all, so me creating the low/high poly models is a long way off at the moment, is there any available on the net (for free?) or my other idea was to download a free "high poly" model and use that to work back to a low-poly mesh.

Any ideas welcome :)


N(Posted 2004) [#4]
You can probably find some high poly models at 3dcafe.com, but most of them aren't really good for 'practical' use.

Best thing you can do is either get an artist or work on your skills.


.rIKmAN.(Posted 2004) [#5]
Ah so its a catch 22 then....I wanted to work on my coding skills rather than my modelling skills :(

What do you mean by "practical use", I`m not trying to make any "usable" game or suchlike...just a small tech demo to play with the effects...


N(Posted 2004) [#6]
Practical use as in using it for something that isn't completely pointless.


AntonyWells(Posted 2004) [#7]
Rik, check out tangant mapping. It allows you to map a normal map tile based(I.e 1 for 1 fit with your regular textures)..

Deep exploration can produce this normal maps, or you can download nvidia's command line normal map maker(Which is what de uses, so no diff in quality)..

Then you just create normal maps for each regular texture, and map it using the uv coords as the normal textures..this normal map goes on first, then your diffuse(I.e regular color) map.

You'll have to use vertex colors on the entity.

Providing a simple to understand tutorial or how to do tangant mapping is beyond me..I would only confuse matters ;)


aCiD2(Posted 2004) [#8]
Tangent mapping is that which is used in dot my bot is it not? It converts from entity to tangent space, i think, i dunno - i use my own routine :)


AntonyWells(Posted 2004) [#9]
I saw that..that face wasn't it? Wasn't any sort of tangant mapping i've seen..i recall the head could rotate without bump maps being affected etc.. and it didn't look very bumpy.. So my advice rik is to not attempt learn from it. I did without much joy..

there are however a bunch of tutorials on the net, if you do a search on tangent mapping.


.rIKmAN.(Posted 2004) [#10]
Cheers guys!

At the mo I`m trying to make a set of high/low poly models, from a high poly one downloaded fromt the net - harder than it sounds with my modelling skills!


aCiD2(Posted 2004) [#11]
Yea, i agree not to use dot my bot, i think it [i]is[/b] tangent space.. but poor :P


JoshK(Posted 2004) [#12]
This won't work in Blitz3D anyways, so you are wasting your time. Once you animate the model, you will lose correct normals.


aCiD2(Posted 2004) [#13]
o_0 really?


maximo(Posted 2004) [#14]
isn't the same case in doom3?


.rIKmAN.(Posted 2004) [#15]
I wasn`t planning to use normal mapping on any of my characters (at least not til I have a firmer understanding of the concept) - the plan was (for now at least) to use it on static geometry and walk around.

Well, that was the aim anyway :)


N(Posted 2004) [#16]
isn't the same case in doom3?



Does it look like that? ;)


Paolo(Posted 2004) [#17]
I have recently done some test with
low-poly and high-poly models, ORB and Blitz3D.

And I have found there is big problem, I have not be able to do a piece of code which can bumpmap correctly any loaded model, and I mean EACH model needs a different code to be correctly "bumpy" according a certain light. The Rob's demo source code works with certains models partially and with other not at all, the same happend with the code from "dot my bot", and the same with my code ,... so ... or NO ONE has found the correct coding or it can not be added correctly at this moment.

And, if Mark decided to start building a dot3 lighting stuff for B3D, what does he drop it at middle development?

Paolo.

-by the way, I can upload some meshes I did with their normal maps if someone want to do some more tests...


.rIKmAN.(Posted 2004) [#18]
Hey sure, I`d love to have a look at what you have got.

Upload them and post links or if you don`t have the space let me know and I will host the files for you.

Cheers Paolo! :)


Barliesque(Posted 2004) [#19]
NVidia offers a program called MELODY for *free*

NVIDIA Melody creates high quality normal maps that make a low-poly model look like a high-poly model. Simply load your low poly working model, then load your high-poly reference model, click the "Generate Normal Map" button and watch Melody go to town.

You can also use Melody to generate LODs for you with the "Generate Progressive Mesh" feature. You can rotate your models and see the normal map in action. A command line version is provided to help you integrate Melody in your content creation pipeline. Read more about how you can get the most out of Melody in the accompanying User Guide.


Get it here:
http://developer.nvidia.com/object/melody_home.html


Paolo(Posted 2004) [#20]
Ok, look at my Signature,

those demos are the best results I could get.
Also in the zip there are two Doom 3 screenshots, look at the enemies skin, I try to copy that in one of the demos...

Later!
Paolo.


Ross C(Posted 2004) [#21]
Halo is correct about the animated models. Since you can't get vertex positions of the mesh when it's animating, you don't know the normals, so you can adjust the vertex colours. I believe Rob's code uses directional light only. I don't think blitz can do tangient mapping either.


Picklesworth(Posted 2004) [#22]
Nonetheless, normal mapping is useful even if you don't have any bumps, because you can use it to get pixel perfect lighting in blitz :D
Could you animate a normal map to simulate complex muscle movements?

Oh, and please Mark (if you ever read this), make normal mapping more useable!