Quick screens: triplanar normal mapping

Published March 10, 2013
Advertisement
Making a short update this time. I finally have triplanar normal mapping working how I want it to. The following screenshots show normal mapping being used on the cliffs, with the same methods used to calculate steep areas on the terrain.

Without shadows or post-process FX, the view in the first screenshot takes about 9-10 milliseconds for one frame using forward rendering and 4x MSAA, and 16 ms with deferred rendering. Shadow mapping remains a big GPU-heavy step, taking up to 25 ms in the process.

I also achieved my goal of making the forward renderer's output indistinguishable from the deferred renderer, at least without shadow support (the shadowing code has still not started for the forward renderer). The program can be written in a way to make both renderers switchable on the fly, which is useful when many dynamic lights enter the scene.

Edit: Some more screenshots, with better textures. These are free textures from FilterForge.

screen27-4.jpg

screen27-3.jpg

screen26-5.jpg

Next, I'll be starting the terrain editor in raising and lowering the elevation. The engine currently draws the terrain with geo clipmaps which just aren't working well enough for me. I will be switching to geo mipmapping.
0 likes 2 comments

Comments

riuthamus

Would you mind speaking with Telanor about how you did the forward rendering + differed rendering? Our grass has some serious issues because it is a model with alpha's and because of this has some issues with point lights, and other objects. Any guidance you can provide would be great. I know very little of the mess because of my basic understanding of the system but telanor ( which is his username here ) is the brains behind it. Much like many coders he is socially inept at interacting with people so I have been sent as his envoy! Thanks in advance and I love seeing the stuff you are doing, wish I could pick you up for our project! AHAHA :P

March 11, 2013 09:19 AM
CC Ricers

My graphics engine gives the user the option to select either deferred or forward rendering (custom rendering pipelines are possible too) for the entire scene. But as of now they cannot be both used at once, because it's applied to the scene one time. I don't do much alpha blending with textures- nearly all the time I use alpha testing which is how the trees here are drawn.

Is this related to Telanor's topic on transparent voxels? I basically clip all pixels with alpha < 0.5 on the pixel shader for the lighting passes. Doing alpha blending just brings up a whole mess of having to correctly set the blending states and reset them for certain objects.

The best way I can think of using alpha-blended objects with deferred rendering is to draw them after the proper deferred rendering pass. You draw your opaque pixels first in the deferred pass. Then do a pass that restores the depth buffer. After that, draw your transparent stuff. However you mentioned the need to work with point lights. My initial thought is to combine the light buffer with the blended rgba color of the transparent pixels. May not be perfectly accurate but it could be worth trying.

March 11, 2013 06:25 PM
You must log in to join the conversation.
Don't have a GameDev.net account? Sign up!
Advertisement