15 Nov 2007

Nebula3 November SDK

Alright, here's the new Nebula3 SDK: http://www.radonlabs.de/internal/n3sdk_nov2007.exe

Some notable new features:

  • first version of the Application Layer plus a small sample app
  • now also works on ATI cards which support shader model 3.0 (X-above-1000)
  • a new global light source type
  • resources now loaded from zip archive
  • many bugfixes

There are a quite few known issues in this release:

  • some (new) VSM-related visual artefacts in the shadow system (light leaking and shadow grain near some shadow casters), this must be fixed by tuning some VSM parameters which I didn't quite have the time to do right
  • new Application Layer sample app has clumsy controls and camera
  • shadows are not rendered when shadow caster is not visible which leads to shadow pop-up in the App Layer sample application
  • re-building assets requires the Nebula2 Toolkit For Maya
  • some new Doxygen docs pages are messy
  • ODE, OPCODE and GIMPACT not credited yet in the docs

So this release is a bit rough, I hope the next one will be more polished. But I really wanted to push it out the door instead of spending even more time to fix stuff.

Here are a few screenshots:
This is the testviewer.exe with one global light (cannot cast shadows yet, I'm planning to implement Parallel-Split Shadow Maps for global light sources), plus 2 spot lights which cast VSM shadows.

The next one is a screenshot of the new testgame.exe sample application, with a player-controllable avatar and some physics boxes to play around with:


Enjoy!
-Floh.

5 comments:

Steven 'lazalong' Gay said...

Hello

All the projects compiled correctly but when I try to run any viewers (the game demo for example) it just shows me a white screen.
Any idea what is wrong?

My machine x300, DX9c (august 2006).

Floh said...

The X300 only runs shader model 2.0, Nebula3 currently requires SM3.0 as minimum. Only the 4-digit X-ATIs seem to support 3.0, AFAIK.

Jeng said...

Wow, this is really cool stuff. The demo application really helps when figuring out how it all fits together. Great design!!!

I am wondering if the Maya plugin is compatible with the latest Maya release?

Thanks floh!!! :)

John said...

I have some error when compiling:

d_ode_win32.lib(convex.obj) : error LNK2005: "public: virtual char const * __thi
scall std::exception::what(void)const " (?what@exception@std@@UBEPBDXZ) already
defined in LIBCMTD.lib(stdexcpt.obj)
d_ode_win32.lib(convex.obj) : error LNK2005: "public: virtual __thiscall std::ex
ception::~exception(void)" (??1exception@std@@UAE@XZ) already defined in LIBCMTD
.lib(stdexcpt.obj)
..\..\bin\win32\testgame.exe : fatal error LNK1169: one or more multiply defined
symbols found


That me to do?

Viktor said...

2John

Yea, get the same error fixed it with compiler option: /FORCE:MULTIPLE

But still doesn't work because of ansi2utf8 conversion bug. In my case this was prevented access to localized My Documents folder.

Here are workaround(Util/string.cc, 487):
void
String::ANSItoUTF8()
{
n_assert(!this->IsEmpty());
SizeT bufSize = this->strLen * 2 + 1;
char* buffer = (char*) DataHeap->Alloc(bufSize);
char* buffer2 = (char*) DataHeap->Alloc(bufSize);
char* dstPtr = buffer;
char* dstPtr2 = buffer2;
const char* srcPtr = this->AsCharPtr();

MultiByteToWideChar(CP_ACP, 0, srcPtr, -1, (LPWSTR)buffer, bufSize);
WideCharToMultiByte(CP_UTF8, 0, (LPWSTR)buffer, -1, buffer2, bufSize, NULL, NULL);

this->SetCharPtr(buffer2);
// DataHeap->Free(buffer);
// DataHeap->Free(buffer2);
}