27 Sep 2007

Nebula3 September SDK

Here's the Nebula3 Sep 2007 SDK. This is - as always - work in progress.

Some of the new stuff:
  • new and improved HTTP debug pages
  • added some more subsystem docs
  • new Base namespaces which contains all XxxBase classes (mainly to keep the Doxygen documentation clean)
  • work-in-progress Lighting subsystem with dynamic spotlights and soft shadows
  • RenderTarget resolve-to-texture more flexible (resolve texture can have different size from the render target, and can resolve into a sub-rectangle of the resolve texture)
Compatibility info:

The Test Viewer has been tested on nVidia 6600 and 7800 cards only. The 6xxx cards don't seem to support texture filtering on G16R16F textures, thus the shadow edges won't be properly smoothed (they still look quite ok though). I think the ATI cards are also unable to filter FP textures. The proper solution would be to implement the linear filtering in the shader. This is planned but not implemented yet.

Enjoy!
-Floh.

18 comments:

Ignacio said...

Very cool! I can't wait to see the lighting/shadowing system in a more complex scene. BTW runs perfectly on GF8600 cards.

As always, great job!

larry said...

Good to see nebula3 developing fast. The scene doesn't show on my Radeon x1650 Pro, all I get is a green screen.
On the http debug, the models and meshes have been loaded though.

On the plus side, I finally started work on the OpenGL renderer, it builds but I cant test yet till I implement some of the required classes e.g. an OpenGL RenderTarget.

Floh said...

@larry: Did you run the testviewer executable? I moved the stuff from nviewer3 to testviewer because it became too messy with all the hardwired scene setup. The nviewer3 currently just displays a green screen.

Floh said...

@larry: Oops nevermind... I skipped the part where you mentioned that the resources show up in the HTTP debug view... I need to test this on Radeon cards, maybe they choke on the shadow buffer render targets. Thanks for the bug report :)

Leaf said...

I got things working on an ATI x1950. I added a pixel shader to replace the NULL pixel shader in static.fx.

I also changed the format of the VSM render targets to G16R16, instead of G16R16F as this card can filter the fixed point format but no floating point.

larry said...

@leaf could you post the shader somewhere so I can give it a try?

Leaf said...

This is the 'null' pixel shader

float4 NullPixelShader() : COLOR
{
return float4(1,1,1,1);
}

and I replaced this line

PixelShader = NULL;

With

PixelShader = compile ps_3_0 NullPixelShader();

You'll need to run buildassets.msbuild afterwards.

Larry said...

Thanks leaf, it worked perfectly. If not too much trouble please explain why this had to be done.

Leaf said...

@Larry: You have to pair 3.0 vertex shaders with 3.0 pixel shaders, so strictly speaking it's an error to set a NULL pixel shader with a vs_3_0 vertex shader. DirectX reports this when running with the debug runtimes. What actually happens when you have something DirectX thinks of as an error is graphics card specific - so Nvidia cards happen to work with this error where ATI cards don't.

Haron said...

@floh: I've ported foundation module to Linux. It compiles in August version but with September build it fails to compile (i'm still looking for reason). But if you are planning to add Linux support I can send you sources.

david said...

Hi, on my laptop with an old ATI Radeon 9200 I get some assertion errors when I try to start nviewer3 and testviewer...
-------------------------------------
Thread: Main
Error: ***NEBULLA ASSERTION***
expression: SUCCEEDED(hr)
file: ..\render\coregraphics\d3d9\d3d9rendertarget.cc
line: 109

larry said...

@haron, can I have the sources?

Haron said...

@larry: yes. it is 2Mb archive. give me your mail or suggest other way.

Larry said...

@haron pls send it to larryweya at gmail. Thanks.

Haron said...

I fixed compilation problems (i installed gcc_4.2.2 and fixed several bugs). Foundation, testserver and testclient modules are compiled and run under Linux. testclient doesn't connect to testserver and this problem i'm planning to fix next.

@larry: i've sent Linux patch to you

Thermo said...

Great!
I'll try this on FreeBSD.

Haron said...

I've fixed bug with connection between testclient and testserver so now it works under Linux.

ctuo said...

@larry I have the same problem on my ati x1650 card.how had you resolved?