4 Nov 2007

Shadow Fixes

Phew, I think I have fixed most of the pressing problems in the VSM code. I didn't manage to get the number of executed instructions in the pixel shader down to a reasonable number with dynamic branching as I was hoping. So I went the shader-library way and added shader variations for 1 local light, 2 local lights, etc... up to 8 local lights, so that performance with a low number of dynamic lights has become dramatically better especially on graphics cards with low fillrate (shader optimizations aren't a big priority yet however). Shader model 3.0 still has some annoying restrictions when trying to do a single-pass/multiple-light shader, so the ├╝bershader approach isn't very practical in the end. Hmpfh. I'm almost starting to consider deferred lighting... at least as a second option. Shadow quality has been improved a little bit because some bugs in the 2x2 downsample and gaussian blur filters have been fixed, finally I'm now emulating bilinear filtering when sampling the shadow buffer in the pixel shader so that shadow borders should now be properly smoothed also on cards which don't support bilinear filtering of G16R16F texture formats (like ATI's).

I'll try to get a new SDK out of the door next week, it's a little more complicated to coordinate a release now that 3 people are actively working on N3.

4 comments:

eRiX said...

No screenshot?!? :(

You know we want eyecandy!!! :D

Steven 'lazalong' Gay said...

Hello

I tried your Nebula 3 skd that I found on your blog.

As I couldn't find a way to contact you except here I leave this comment.

All seemed to compile and "Testfoundation_win32.exe doesn detect an error.
But when I tried "tests_win32.exe" it throws the following error:


NEBULA3 RENDER TESTS
====================
-> Running test: Test::N2ModelLoaderTest
*** ERROR ***
Application: Nebula3 Render Tests
Thread: Main
Error: *** NEBULA ASSERTION ***
expression: D3DFMT_UNKNOWN != this->d3d9ColorBufferFormat
file: c:\program files\nebula3 sdk (sep 2007)\code\render\coregraphics\d3d9\d3d9
rendertarget.cc
line: 217



I am using the DirectX August 2006 SDK but I never had any problem with other libraries such as Ogre3D.
Is it a DX version problem ?

Also I am considering using Nebula3 for a game.

Do you think I should begin directly with Nebula3 ?

Is the Maya toolkit compatible with Nebula3 ?
If not, should I use Nebula 2 or will there be "soon" a toolkit for the version 3 ?
And will there be a converter to pass all artist works from the version 2 to the version 3 ?


Bye

Floh said...

Everything above the Foundation Layer is heavily work in progress, so bugs are somewhat expected there. Actually I wouldn't recommend using Nebula3 already for a project, because we cannot yet commit on a definitive timeline when important features will be added.

erhge said...

hi, floh, when i tried to compile the tests, i found the similar error with steven, and i donot know what's it about?

NEBULA3 RENDER TESTS
====================
-> Running test: Test::N2ModelLoaderTest
*** ERROR ***
Application: Nebula3 Render Tests
Thread: Main
Error: *** NEBULA ASSERTION ***
expression: D3DFMT_UNKNOWN != this->d3d9ColorBufferFormat
file: d:\nebula3 sdk (nov 2007)\code\render\coregraphics\d3d9\d3d9
rendertarget.cc
line: 216

besides, my directx version is Microsoft DirectX SDK (August 2007), and my display card is ATI HD 2600 pro, and another machine with NV GF 6200.and the nebula device 3 sdk version is NOV 2007.

pls feel free to help me.