Presentation is loading. Please wait.

Presentation is loading. Please wait.

v1.0 Per Abrahamsen FUNCOM, Oslo

Similar presentations


Presentation on theme: "v1.0 Per Abrahamsen FUNCOM, Oslo"— Presentation transcript:

1 v1.0 Per Abrahamsen FUNCOM, Oslo pera@funcom.com
Practical application of cutting edge technology in real-time 3D environments v1.0 Per Abrahamsen FUNCOM, Oslo

2 Intro Say hello to Senior
Talk focused on normal mapping with additional topics if time allows

3 Normal Maps LOW(450 tris), HI, and normal mapped LOW poly models

4 Concerns Who’s concerned? What are the concerns? Artists, managers
Production time Moving to hi-poly modeling Not understanding the tech Not liking the tech/look Not having a good development environment for the tech

5 Addressing the Concerns
No reason for longer overall production times Artists will have to adapt a new skill set Making high-quality graphics takes time. Regardless of tech. Production time isn't relative to polycount This industry develops very quickly. You can cope Tools are getting better A good foundation in light and mass theory is needed There's always going to be a need for low-poly and technical modelers Production environment…

6 In Detail (1/4) Normal mapping is just a concept
3D Lighting is already fake. Normal maps just take it one step further Let’s start with the basics…

7 In Detail (2/4) NORMALS Hold a direction in space Each vertex in a model has a normal Only normals are considered when calculating lights

8 In Detail (3/4) Normals can be represented through RGB

9 In Detail (4/4) Specify a normal on a per-pixel basis,
Someone came up with a way to generate normal maps from 3D geometry…

10 The morals of normal theft
The low poly model samples the high poly Sampling angles is like firing a machine-gun in Quake. Fire, sample the normal at the impact, convert to RGB, then plot it onto the normal map at the source of the ray

11 Generation Trouble!(1/4)
Overlapping geometry Ok, so we set the generator to sample the last hit, not the first

12 Generation Trouble!(2/4)
Now what? To solve this problem, let's configure a maximum length of the ray being cast

13 Generation Trouble!(3/4)
Looks fine for this model. We’re sampling what we wish to and ignoring everything else

14 Generation Trouble!(4/4)
A ray cage gives you the best control The ray cage is a copy of your low resolution mesh, modified to define outer extents of ray casting

15 Coordinate Systems World/absolute Local/Object/Tangent
For static objects. Relative to the world Local/Object/Tangent For skinned objects Relative to existing vertex normals

16 Post-Generation We’ve got a normal map. Now what? Preview it somehow
Manually edit: Blur, sharpen, mix, tile, noise Remember to renormalize!

17 Bump Maps? Still valid to use; just make sure you understand how they work Little control Blurry results Still have their uses: Veins, surface texture

18 High-Poly Mesh This model is not your goal
Keep low-poly target and UV map in mind Avoid extrusions, they are expensive Secondary focus should be surface detail Primary focus should be mass definition Don’t put in too much detail Don’t be afraid to stylize the model

19 Hi-Poly Tips(1/2) Build in chunks
Default pose: Lift arms, open mouth, close eyes Avoid: Intersections Holes Use bump maps when you can

20 Hi-Poly Tips (2/2) Instantiate geometry Cluster objects
Trick the ray-caster with isolated geometry Great way to avoid messing up topology GI will look wrong though

21 Low-poly mesh Avoid very sharp angles when you can
You’ll find you can go even lower on the polycount than usual Your meshes don’t have to be as easy to read as before.

22 UV Coordinates (1/2) Move mirrored bits into separate area
Previously had to be very generalized This time the detailing is determined PRIOR to the UVs. Variable level of resolution is now OK. Warping is now OK Choose warping over seams!

23 UV Coordinates (2/2) UV-mirroring
Normals are relative to the mesh, but with mirroring it can be relative to two mesh surfaces. Generator must support it Workaround is to un-mirror the UVs for the mesh used at the generation stage. Select half the UVs and move them out of the way Renderer must support it

24 Specular Maps Rounded corners catch more light
You definitely need RGB specmaps. Don’t listen to the programmers! “Soft” textured surfaces like skin and wood reflect little colour in the specular highlight “Hard” surfaces like shiny plastic reflect colour strongly Glossiness: The size/shape of the highlight. Most efficiently a per-material setting as opposed to per-pixel

25 Diffuse Maps (Almost) devoid of light, highlights and shadow.
Bake a low-key GI into your diffuse, emulating darkness that is always present, regardless of position of the light. Nostrils, ears, folds of skin…

26 Texture compression Compression ratio is set Most relevant formats:
DXT1 – Acceptable for non-smooth diff/spec 256x256 = 32kb 512x512 = 131kb DXT5 – Lowest amount of artifacts 256x256 = 65kb 512x512 = 262kb Uncompressed 256x256 = 262kb 512x512 = 1048kb

27 Tools ORB: http://www.soclab.bth.se/practices/orb.html
ATI NormalMapper: NVIDIA Melody and photoshop plugin: Kaldera(commercial): Doom3 Max7 Zbrush....

28 Pixel shaders and effects
Pixel shaders are Input -> Operations -> Output Input: UVs, color, coordinates, texture, constant Ops: Math, combine, branching, conditionals Output: A pixel Don’t fear math. It’s your friend!

29 Lighting model Using Ambient to simulate light scattering…
High Dynamic Range Light (Any time for this?

30 Shadows Stencil, Bitmap

31 Rant Any time left for this?

32 Questions and poems


Download ppt "v1.0 Per Abrahamsen FUNCOM, Oslo"

Similar presentations


Ads by Google