• Announcements

    • khawk

      Download the Game Design and Indie Game Marketing Freebook   07/19/17

      GameDev.net and CRC Press have teamed up to bring a free ebook of content curated from top titles published by CRC Press. The freebook, Practices of Game Design & Indie Game Marketing, includes chapters from The Art of Game Design: A Book of Lenses, A Practical Guide to Indie Game Marketing, and An Architectural Approach to Level Design. The GameDev.net FreeBook is relevant to game designers, developers, and those interested in learning more about the challenges in game development. We know game development can be a tough discipline and business, so we picked several chapters from CRC Press titles that we thought would be of interest to you, the GameDev.net audience, in your journey to design, develop, and market your next game. The free ebook is available through CRC Press by clicking here. The Curated Books The Art of Game Design: A Book of Lenses, Second Edition, by Jesse Schell Presents 100+ sets of questions, or different lenses, for viewing a game’s design, encompassing diverse fields such as psychology, architecture, music, film, software engineering, theme park design, mathematics, anthropology, and more. Written by one of the world's top game designers, this book describes the deepest and most fundamental principles of game design, demonstrating how tactics used in board, card, and athletic games also work in video games. It provides practical instruction on creating world-class games that will be played again and again. View it here. A Practical Guide to Indie Game Marketing, by Joel Dreskin Marketing is an essential but too frequently overlooked or minimized component of the release plan for indie games. A Practical Guide to Indie Game Marketing provides you with the tools needed to build visibility and sell your indie games. With special focus on those developers with small budgets and limited staff and resources, this book is packed with tangible recommendations and techniques that you can put to use immediately. As a seasoned professional of the indie game arena, author Joel Dreskin gives you insight into practical, real-world experiences of marketing numerous successful games and also provides stories of the failures. View it here. An Architectural Approach to Level Design This is one of the first books to integrate architectural and spatial design theory with the field of level design. The book presents architectural techniques and theories for level designers to use in their own work. It connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with this space. Throughout the text, readers learn skills for spatial layout, evoking emotion through gamespaces, and creating better levels through architectural theory. View it here. Learn more and download the ebook by clicking here. Did you know? GameDev.net and CRC Press also recently teamed up to bring GDNet+ Members up to a 20% discount on all CRC Press books. Learn more about this and other benefits here.
Sign in to follow this  
Followers 0
Quat

CSM Speed Improvements

6 posts in this topic

I'm rendering outdoor scene with 6 cascades. I use spheres to avoid the "flicker" problem when the camera moves. The main problem is that the last two cascade spheres are very large (containing a good portion of my entire level). Therefore, I get a lot of "draw call" overhead.

I tried updating one cascade per frame, but when the camera moved very fast, I could notice a quick flickering error. Most likely because the camera no longer matches the camera that was used when a cascade was updated, so it doesn't correct until the cascade is "updated".

I'm going to try static shadow maps for far distances. Of course, they will not support animated meshes. Any other ideas?
0

Share this post


Link to post
Share on other sites
6 is a lot of cascades!

You could use instancing to render meshes that are in multiple cascades. Just pass all of the cascade matrices to the vertex shader, and use the right one based on SV_InstanceID.
0

Share this post


Link to post
Share on other sites
Hello next gen game maker! I mean, by Zeus six???

Anyway, depending on your problems I can think of two things.

This should help cull a lot of stuff out, and give you speedup at least: [url="http://www.cg.tuwien.ac.at/research/publications/2011/bittner-2011-scc/bittner-2011-scc-paper.pdf"]http://www.cg.tuwien...1-scc-paper.pdf[/url]
Think of it as "sparse shadow caster culling" or rather, just culling out objects that aren't going to directly affect the players view from the shadow map.

Another, more relevant to the draw call problem is this: [url="http://advances.realtimerendering.com/s2012/insomniac/Acton-CSM_Scrolling%28Siggraph2012%29.pdf"]http://advances.real...ggraph2012).pdf[/url]
It's essentially shadow map cache for CSM. Not sure how you'd adapt this too well to a moving overhead lightsource/the sun. But maybe you're doing an all static sun all the time, in which case the above should work out very well indeed. Edited by Frenetic Pony
0

Share this post


Link to post
Share on other sites
I use a geometry shader to dispatch the geometry on the render targets. (I can't use instancing in my case, at least not easily, because I already use instancing to automatically render duplicated geometry.)

The geometry is provided to the geometry shader with a 8-bit (max 8 splits) mask so that the geometry shader is dispatching the geometry on the appropriate render targets only.

The drawback is that I have also to compute these flags using each split frustum. (ie frustum culling for each split)

Hope it can help (?)

Nico
0

Share this post


Link to post
Share on other sites
[quote name='Tournicoti' timestamp='1348751855' post='4984337']
I use a geometry shader to dispatch the geometry on the render targets. (I can't use instancing in my case, at least not easily, because I already use instancing to automatically render duplicated geometry.)

The geometry is provided to the geometry shader with a 8-bit (max 8 splits) mask so that the geometry shader is dispatching the geometry on the appropriate render targets only.

The drawback is that I have also to compute these flags using each split frustum. (ie frustum culling for each split)

Hope it can help (?)

Nico
[/quote]
Have you tried it without the geometry shader? My experience with using geometry shaders to render something from different views have been discouraging in the past. I'm curious whether newer graphics cards make this more feasible.
0

Share this post


Link to post
Share on other sites
[quote name='B_old' timestamp='1348756738' post='4984367']
My experience with using geometry shaders to render something from different views have been discouraging in the past. I'm curious whether newer graphics cards make this more feasible.
[/quote]
Hello, no I haven't tried with instancing .... I've used [url="http://http.developer.nvidia.com/GPUGems3/gpugems3_ch10.html"]this [/url] , using the geometry shader method
[img]http://public.gamedev.net//public/style_emoticons/default/smile.png[/img]
0

Share this post


Link to post
Share on other sites
Hi,

The method described in the provided link is something to be avoided (as far as I know), The geometry shader can't handle efficiently outputting lots of primitives.

However, the geometry shader has its use. You can use the GS to define the render target index. You should modify your instancing code in a way that you have the render target index available for shadow rendering. So instead of drawing your scene * number of cascades times, you can draw everything in a single loop. Although drawing the meshes belonging to several cascades multiple times, your total number of draw calls doesn't increase.

Cheers!
0

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0