DirectX 11 render system - work-in-progress

Discussion area about developing or extending OGRE, adding plugins for it or building applications on it. No newbie questions please, use the Help forum for that.
Post Reply
User avatar
Assaf Raman
OGRE Team Member
OGRE Team Member
Posts: 3092
Joined: Tue Apr 11, 2006 3:58 pm
Location: TLV, Israel
x 76

Re: DirectX 10 render system - work-in-progress

Post by Assaf Raman »

Well - d3d11 should be supported also on older hardware - but not completely, MS added a profile system to define the support.
Watch out for my OGRE related tweets here.
georgevicbell
Gnoblar
Posts: 3
Joined: Mon Apr 27, 2009 7:46 pm

Re: DirectX 10 render system - work-in-progress

Post by georgevicbell »

I think it works with the Radeon 4870 with up to date drivers etc. I wasn't getting the reference device message last night.
lordofcoder
Gnoblar
Posts: 8
Joined: Sat Feb 23, 2008 12:18 pm
Location: beijing,china

Re: DirectX 10 render system - work-in-progress

Post by lordofcoder »

Hi all
I plan to use this RS in our project,but there looks like a bug in it

Code: Select all

void D3D10HLSLProgram::populateDef(D3D10_SHADER_TYPE_DESC& d3dDesc, GpuConstantDefinition& def) const
 {
483     def.arraySize = d3dDesc.Elements;
which is in D3D10HLSLProgram::populateDef function.
The Elements member of D3D10_SHADER_TYPE_DESC will be 0 if the constant isn't a array.
It will lead to crash after call FixedFuncPrograms::_setProgramParameter in Ogre1.62.
User avatar
Assaf Raman
OGRE Team Member
OGRE Team Member
Posts: 3092
Joined: Tue Apr 11, 2006 3:58 pm
Location: TLV, Israel
x 76

Re: DirectX 10 render system - work-in-progress

Post by Assaf Raman »

How can I recreate the problem on my computer?
Watch out for my OGRE related tweets here.
lordofcoder
Gnoblar
Posts: 8
Joined: Sat Feb 23, 2008 12:18 pm
Location: beijing,china

Re: DirectX 10 render system - work-in-progress

Post by lordofcoder »

Assaf Raman wrote:How can I recreate the problem on my computer?
Thanks for your reply,to recreating the problem you should download the Ogre1.62 and modify the Plugin.cfg for include Plugin_RenderSystemD3D10.dll,then run the Debug DemoGui project from VC,it will crash
User avatar
Assaf Raman
OGRE Team Member
OGRE Team Member
Posts: 3092
Joined: Tue Apr 11, 2006 3:58 pm
Location: TLV, Israel
x 76

Re: DirectX 10 render system - work-in-progress

Post by Assaf Raman »

I will have a look.
Watch out for my OGRE related tweets here.
Evandro Millian
Gnoblar
Posts: 5
Joined: Thu May 21, 2009 12:13 pm

Re: DirectX 10 render system - work-in-progress

Post by Evandro Millian »

Hi for all.

I would like to suggest one feature: can you try to use D3D10 WARP driver? This will help all that (like me) wanna play with Directx 10, but still don't have a capable hardware.

Thanks
User avatar
Assaf Raman
OGRE Team Member
OGRE Team Member
Posts: 3092
Joined: Tue Apr 11, 2006 3:58 pm
Location: TLV, Israel
x 76

Re: DirectX 10 render system - work-in-progress

Post by Assaf Raman »

What do you mean by "use D3D10 WARP driver"?
Watch out for my OGRE related tweets here.
Evandro Millian
Gnoblar
Posts: 5
Joined: Thu May 21, 2009 12:13 pm

Re: DirectX 10 render system - work-in-progress

Post by Evandro Millian »

Hi Assaf

It's the software driver, that exists in March 2009 release. It's still in beta, but can be used. The procedure to use it is in DXUT.cpp file, inside "Samples" directory. There are some samples that you can activate this software driver, and the performance is very acceptable (while REF runs at 0.5 fps, the WARP run some samples at 80 fps in my Intel integrated graphics card)
User avatar
Assaf Raman
OGRE Team Member
OGRE Team Member
Posts: 3092
Joined: Tue Apr 11, 2006 3:58 pm
Location: TLV, Israel
x 76

Re: DirectX 10 render system - work-in-progress

Post by Assaf Raman »

I will have a look.
Watch out for my OGRE related tweets here.
lordofcoder
Gnoblar
Posts: 8
Joined: Sat Feb 23, 2008 12:18 pm
Location: beijing,china

Re: DirectX 10 render system - work-in-progress

Post by lordofcoder »

Hi all
I think StateObject managing of this RS isn't on the right way now
First ,wouldn't there need a state object caching which like hashmap?it will make better performance than create every stateobject on the fly although DX10 can filter out the duplicate.
Second ,is it better that set state object in the SceneManager::_setPass?There has some problem with setting StateObject in D3D10RenderSystem::_render,that is when material of a entity changed ,the D3D10RenderSystemOperationState isn't update!
User avatar
Assaf Raman
OGRE Team Member
OGRE Team Member
Posts: 3092
Joined: Tue Apr 11, 2006 3:58 pm
Location: TLV, Israel
x 76

Re: DirectX 10 render system - work-in-progress

Post by Assaf Raman »

Well, so basically you are saying you like the code as is?
Watch out for my OGRE related tweets here.
josh_sg1
Gnoblar
Posts: 8
Joined: Tue May 26, 2009 2:49 am

Re: DirectX10.1

Post by josh_sg1 »

Lee04 wrote:DirectX10 is a bit "old" by know to architect an Ogre Rendersystem around.
DirectX 10.1 specs are available already. Maybe it should be taken into account as well now, even if the hardware won't be available in a while.

I started as well on a DX10 rendersystem got nowhere because I wanted to support input assembly etc. and all the good DirectX10 features.
I realized that Ogres render system needs some new refactoring to fit these in and then maybe even openGL3.0 should be in that refactoring design as well as DX10.1.

Has anyone recompiled Ogre for Vista version of DirectX9 by the way?

I don't have Vista myself yet.
Which hasn't stopped some projects using it.
We used reference raster etc.
Hardware? now available? WTF

Ok man, I just bought a pc with 8 g ram and a quad core proc with a blue ray combo drive and a 750 g hard drive and a 250 g hard drive and a Nvidia 9500 GT with 700$.

That comes with 64 bit windows.

wtf man, come on, hardware is available today! go get that shit.
Image
psquare
Hobgoblin
Posts: 554
Joined: Tue Nov 14, 2006 3:26 pm
x 7

Re: DirectX 10 render system - work-in-progress

Post by psquare »

Hi Assaf,
I am trying to work with Geometry shaders. I was looking at Demo_IsoSurf, but I get an assert. Here's the call stack (Basically, mFloatConstants contains nothing):

Code: Select all

 	msvcp90d.dll!std::_Debug_message(const wchar_t * message=0x60f4a5cc, const wchar_t * file=0x60f463a8, unsigned int line=779)  Line 24	C++
 	OgreMain_d.dll!std::vector<float,Ogre::STLAllocator<float,Ogre::CategorisedAllocPolicy<0> > >::operator[](unsigned int _Pos=0)  Line 779 + 0x17 bytes	C++
>	OgreMain_d.dll!Ogre::GpuProgramParameters::getFloatPointer(unsigned int pos=0)  Line 1398 + 0x1a bytes	C++
 	RenderSystem_Direct3D10_d.dll!Ogre::FixedFuncPrograms::_updateParameter(Ogre::SharedPtr<Ogre::GpuProgramParameters> & programParameters={...}, const std::basic_string<char,std::char_traits<char>,std::allocator<char> > paramName="World", const void * value=0x00f57930, const unsigned int sizeInBytes=64)  Line 270 + 0x21 bytes	C++
 	RenderSystem_Direct3D10_d.dll!Ogre::FixedFuncPrograms::_setProgramParameter(const Ogre::GpuProgramType type=GPT_VERTEX_PROGRAM, const std::basic_string<char,std::char_traits<char>,std::allocator<char> > paramName="World", const void * value=0x00f57930, const unsigned int sizeInBytes=64)  Line 201	C++
 	RenderSystem_Direct3D10_d.dll!Ogre::FixedFuncPrograms::_setProgramMatrix4Parameter(const Ogre::GpuProgramType type=GPT_VERTEX_PROGRAM, const std::basic_string<char,std::char_traits<char>,std::allocator<char> > paramName="World", const Ogre::Matrix4 & value={...})  Line 224	C++
 	RenderSystem_Direct3D10_d.dll!Ogre::HlslFixedFuncEmuShaderGenerator::HlslFixedFuncPrograms::setFixedFuncProgramsParameters(const Ogre::FixedFuncPrograms::FixedFuncProgramsParameters & params={...})  Line 817	C++
 	RenderSystem_Direct3D10_d.dll!Ogre::D3D10RenderSystem::_render(const Ogre::RenderOperation & op={...})  Line 2521 + 0x1f bytes	C++
 	OgreMain_d.dll!Ogre::SceneManager::renderSingleObject(Ogre::Renderable * rend=0x0100da50, const Ogre::Pass * pass=0x0465cae0, bool lightScissoringClipping=true, bool doLightIteration=true, const Ogre::HashedVector<Ogre::Light *> * manualLightList=0x00000000)  Line 3350 + 0x1d bytes	C++
 	OgreMain_d.dll!Ogre::SceneManager::BRAND NAME::visit(Ogre::Renderable * r=0x0100da50)  Line 2800 + 0x37 bytes	C++
 	OgreMain_d.dll!Ogre::QueuedRenderableCollection::acceptVisitorGrouped(Ogre::BRAND NAME * visitor=0x00f9839c)  Line 441 + 0x1a bytes	C++
 	OgreMain_d.dll!Ogre::QueuedRenderableCollection::acceptVisitor(Ogre::BRAND NAME * visitor=0x00f9839c, Ogre::QueuedRenderableCollection::OrganisationMode om=OM_PASS_GROUP)  Line 410	C++
 	OgreMain_d.dll!Ogre::SceneManager::renderObjects(const Ogre::QueuedRenderableCollection & objs={...}, Ogre::QueuedRenderableCollection::OrganisationMode om=OM_PASS_GROUP, bool lightScissoringClipping=true, bool doLightIteration=true, const Ogre::HashedVector<Ogre::Light *> * manualLightList=0x00000000)  Line 2891	C++
 	OgreMain_d.dll!Ogre::SceneManager::renderBasicQueueGroupObjects(Ogre::RenderQueueGroup * pGroup=0x04639a18, Ogre::QueuedRenderableCollection::OrganisationMode om=OM_PASS_GROUP)  Line 2968 + 0x25 bytes	C++
 	OgreMain_d.dll!Ogre::SceneManager::_renderQueueGroupObjects(Ogre::RenderQueueGroup * pGroup=0x04639a18, Ogre::QueuedRenderableCollection::OrganisationMode om=OM_PASS_GROUP)  Line 2947 + 0x1a bytes	C++
 	OgreMain_d.dll!Ogre::SceneManager::renderVisibleObjectsDefaultSequence()  Line 2238 + 0x18 bytes	C++
 	OgreMain_d.dll!Ogre::SceneManager::_renderVisibleObjects()  Line 2154 + 0xf bytes	C++
 	OgreMain_d.dll!Ogre::SceneManager::_renderScene(Ogre::Camera * camera=0x00f85910, Ogre::Viewport * vp=0x00f9db70, bool includeOverlays=true)  Line 1463 + 0x12 bytes	C++
 	OgreMain_d.dll!Ogre::Camera::_renderScene(Ogre::Viewport * vp=0x00f9db70, bool includeOverlays=true)  Line 408 + 0x2b bytes	C++
 	OgreMain_d.dll!Ogre::Viewport::update()  Line 196	C++
 	OgreMain_d.dll!Ogre::RenderTarget::updateImpl()  Line 114	C++
 	OgreMain_d.dll!Ogre::RenderTarget::update(bool swap=false)  Line 501 + 0x12 bytes	C++
 	RenderSystem_Direct3D10_d.dll!Ogre::D3D10RenderWindow::update(bool swap=false)  Line 1057 + 0x10 bytes	C++
 	OgreMain_d.dll!Ogre::RenderSystem::_updateAllRenderTargets(bool swapBuffers=false)  Line 113 + 0x22 bytes	C++
 	OgreMain_d.dll!Ogre::Root::_updateAllRenderTargets()  Line 1184 + 0x1c bytes	C++
 	OgreMain_d.dll!Ogre::Root::renderOneFrame()  Line 846 + 0x8 bytes	C++
 	OgreMain_d.dll!Ogre::Root::startRendering()  Line 836 + 0x8 bytes	C++
 	Demo_OceanDemo.exe!OceanDemo::go()  Line 200 + 0xd bytes	C++
 	Demo_OceanDemo.exe!WinMain(HINSTANCE__ * hInst=0x00340000, HINSTANCE__ * __formal=0x00000000, char * strCmdLine=0x000d3163, HINSTANCE__ * __formal=0x00000000)  Line 152 + 0xb bytes	C++
 	Demo_OceanDemo.exe!__tmainCRTStartup()  Line 574 + 0x35 bytes	C
 	Demo_OceanDemo.exe!WinMainCRTStartup()  Line 399	C
 	kernel32.dll!759b36d6() 	
 	[Frames below may be incorrect and/or missing, no symbols loaded for kernel32.dll]	
 	ntdll.dll!76f6883c() 	
 	ntdll.dll!76f6880f() 	
Incidentally, the OpenGL version of this demo works just fine.

I tried some other demos (e.g. the Ocean demo), and I get an assert at the same place. Am I doing something wrong?
I am using Trunk (latest update) and Visual Studio 2008.

Thanks
User avatar
Assaf Raman
OGRE Team Member
OGRE Team Member
Posts: 3092
Joined: Tue Apr 11, 2006 3:58 pm
Location: TLV, Israel
x 76

Re: DirectX 10 render system - work-in-progress

Post by Assaf Raman »

I will have a look later this week and answer you.
Watch out for my OGRE related tweets here.
psquare
Hobgoblin
Posts: 554
Joined: Tue Nov 14, 2006 3:26 pm
x 7

Re: DirectX 10 render system - work-in-progress

Post by psquare »

Sure Assaf. Thanks!
lordofcoder
Gnoblar
Posts: 8
Joined: Sat Feb 23, 2008 12:18 pm
Location: beijing,china

Re: DirectX 10 render system - work-in-progress

Post by lordofcoder »

psquare wrote:Hi Assaf,
I am trying to work with Geometry shaders. I was looking at Demo_IsoSurf, but I get an assert. Here's the call stack (Basically, mFloatConstants contains nothing):

Code: Select all

 	msvcp90d.dll!std::_Debug_message(const wchar_t * message=0x60f4a5cc, const wchar_t * file=0x60f463a8, unsigned int line=779)  Line 24	C++
 	OgreMain_d.dll!std::vector<float,Ogre::STLAllocator<float,Ogre::CategorisedAllocPolicy<0> > >::operator[](unsigned int _Pos=0)  Line 779 + 0x17 bytes	C++
>	OgreMain_d.dll!Ogre::GpuProgramParameters::getFloatPointer(unsigned int pos=0)  Line 1398 + 0x1a bytes	C++
 	RenderSystem_Direct3D10_d.dll!Ogre::FixedFuncPrograms::_updateParameter(Ogre::SharedPtr<Ogre::GpuProgramParameters> & programParameters={...}, const std::basic_string<char,std::char_traits<char>,std::allocator<char> > paramName="World", const void * value=0x00f57930, const unsigned int sizeInBytes=64)  Line 270 + 0x21 bytes	C++
 	RenderSystem_Direct3D10_d.dll!Ogre::FixedFuncPrograms::_setProgramParameter(const Ogre::GpuProgramType type=GPT_VERTEX_PROGRAM, const std::basic_string<char,std::char_traits<char>,std::allocator<char> > paramName="World", const void * value=0x00f57930, const unsigned int sizeInBytes=64)  Line 201	C++
 	RenderSystem_Direct3D10_d.dll!Ogre::FixedFuncPrograms::_setProgramMatrix4Parameter(const Ogre::GpuProgramType type=GPT_VERTEX_PROGRAM, const std::basic_string<char,std::char_traits<char>,std::allocator<char> > paramName="World", const Ogre::Matrix4 & value={...})  Line 224	C++
 	RenderSystem_Direct3D10_d.dll!Ogre::HlslFixedFuncEmuShaderGenerator::HlslFixedFuncPrograms::setFixedFuncProgramsParameters(const Ogre::FixedFuncPrograms::FixedFuncProgramsParameters & params={...})  Line 817	C++
 	RenderSystem_Direct3D10_d.dll!Ogre::D3D10RenderSystem::_render(const Ogre::RenderOperation & op={...})  Line 2521 + 0x1f bytes	C++
 	OgreMain_d.dll!Ogre::SceneManager::renderSingleObject(Ogre::Renderable * rend=0x0100da50, const Ogre::Pass * pass=0x0465cae0, bool lightScissoringClipping=true, bool doLightIteration=true, const Ogre::HashedVector<Ogre::Light *> * manualLightList=0x00000000)  Line 3350 + 0x1d bytes	C++
 	OgreMain_d.dll!Ogre::SceneManager::BRAND NAME::visit(Ogre::Renderable * r=0x0100da50)  Line 2800 + 0x37 bytes	C++
 	OgreMain_d.dll!Ogre::QueuedRenderableCollection::acceptVisitorGrouped(Ogre::BRAND NAME * visitor=0x00f9839c)  Line 441 + 0x1a bytes	C++
 	OgreMain_d.dll!Ogre::QueuedRenderableCollection::acceptVisitor(Ogre::BRAND NAME * visitor=0x00f9839c, Ogre::QueuedRenderableCollection::OrganisationMode om=OM_PASS_GROUP)  Line 410	C++
 	OgreMain_d.dll!Ogre::SceneManager::renderObjects(const Ogre::QueuedRenderableCollection & objs={...}, Ogre::QueuedRenderableCollection::OrganisationMode om=OM_PASS_GROUP, bool lightScissoringClipping=true, bool doLightIteration=true, const Ogre::HashedVector<Ogre::Light *> * manualLightList=0x00000000)  Line 2891	C++
 	OgreMain_d.dll!Ogre::SceneManager::renderBasicQueueGroupObjects(Ogre::RenderQueueGroup * pGroup=0x04639a18, Ogre::QueuedRenderableCollection::OrganisationMode om=OM_PASS_GROUP)  Line 2968 + 0x25 bytes	C++
 	OgreMain_d.dll!Ogre::SceneManager::_renderQueueGroupObjects(Ogre::RenderQueueGroup * pGroup=0x04639a18, Ogre::QueuedRenderableCollection::OrganisationMode om=OM_PASS_GROUP)  Line 2947 + 0x1a bytes	C++
 	OgreMain_d.dll!Ogre::SceneManager::renderVisibleObjectsDefaultSequence()  Line 2238 + 0x18 bytes	C++
 	OgreMain_d.dll!Ogre::SceneManager::_renderVisibleObjects()  Line 2154 + 0xf bytes	C++
 	OgreMain_d.dll!Ogre::SceneManager::_renderScene(Ogre::Camera * camera=0x00f85910, Ogre::Viewport * vp=0x00f9db70, bool includeOverlays=true)  Line 1463 + 0x12 bytes	C++
 	OgreMain_d.dll!Ogre::Camera::_renderScene(Ogre::Viewport * vp=0x00f9db70, bool includeOverlays=true)  Line 408 + 0x2b bytes	C++
 	OgreMain_d.dll!Ogre::Viewport::update()  Line 196	C++
 	OgreMain_d.dll!Ogre::RenderTarget::updateImpl()  Line 114	C++
 	OgreMain_d.dll!Ogre::RenderTarget::update(bool swap=false)  Line 501 + 0x12 bytes	C++
 	RenderSystem_Direct3D10_d.dll!Ogre::D3D10RenderWindow::update(bool swap=false)  Line 1057 + 0x10 bytes	C++
 	OgreMain_d.dll!Ogre::RenderSystem::_updateAllRenderTargets(bool swapBuffers=false)  Line 113 + 0x22 bytes	C++
 	OgreMain_d.dll!Ogre::Root::_updateAllRenderTargets()  Line 1184 + 0x1c bytes	C++
 	OgreMain_d.dll!Ogre::Root::renderOneFrame()  Line 846 + 0x8 bytes	C++
 	OgreMain_d.dll!Ogre::Root::startRendering()  Line 836 + 0x8 bytes	C++
 	Demo_OceanDemo.exe!OceanDemo::go()  Line 200 + 0xd bytes	C++
 	Demo_OceanDemo.exe!WinMain(HINSTANCE__ * hInst=0x00340000, HINSTANCE__ * __formal=0x00000000, char * strCmdLine=0x000d3163, HINSTANCE__ * __formal=0x00000000)  Line 152 + 0xb bytes	C++
 	Demo_OceanDemo.exe!__tmainCRTStartup()  Line 574 + 0x35 bytes	C
 	Demo_OceanDemo.exe!WinMainCRTStartup()  Line 399	C
 	kernel32.dll!759b36d6() 	
 	[Frames below may be incorrect and/or missing, no symbols loaded for kernel32.dll]	
 	ntdll.dll!76f6883c() 	
 	ntdll.dll!76f6880f() 	
Incidentally, the OpenGL version of this demo works just fine.

I tried some other demos (e.g. the Ocean demo), and I get an assert at the same place. Am I doing something wrong?
I am using Trunk (latest update) and Visual Studio 2008.

Thanks
You could modify this code:

Code: Select all

void D3D10HLSLProgram::populateDef(D3D10_SHADER_TYPE_DESC& d3dDesc, GpuConstantDefinition& def) const
{
483     def.arraySize = d3dDesc.Elements;

To

Code: Select all

void D3D10HLSLProgram::populateDef(D3D10_SHADER_TYPE_DESC& d3dDesc, GpuConstantDefinition& def) const
{
483     def.arraySize = d3dDesc.Elements + 1;

The problem will be solved.
Evandro Millian
Gnoblar
Posts: 5
Joined: Thu May 21, 2009 12:13 pm

Re: DirectX 10 render system - work-in-progress

Post by Evandro Millian »

Hey Assaf, forget about WARP driver. As I see in Microsoft WARP In-Depth Guide, you can only change the name of D3D10WARP_beta.dll to D3D10Ref.dll , and automatically the WARP Software driver will be used if D3D10 Device will be created as REFERENCE.


For more informations: http://msdn.microsoft.com/pt-br/library ... n-us).aspx

Thanks
User avatar
Assaf Raman
OGRE Team Member
OGRE Team Member
Posts: 3092
Joined: Tue Apr 11, 2006 3:58 pm
Location: TLV, Israel
x 76

Re: DirectX 10 render system - work-in-progress

Post by Assaf Raman »

I will add an option in the d3d10 render system settings to run in WARP mode.
Watch out for my OGRE related tweets here.
psquare
Hobgoblin
Posts: 554
Joined: Tue Nov 14, 2006 3:26 pm
x 7

Re: DirectX 10 render system - work-in-progress

Post by psquare »

@Assaf
I think, Line 2750 OgreD3D10RenderSystem.cpp should be:

Code: Select all

	ID3D10GeometryShader* gsShaderToSet = mBoundGeometryProgram->getGeometryShader();
Still unable to get geometry shaders to work though. Its as though the geometry shader was not enabled at all. (Output/Behavior is the same when I remove the geometry shader reference from the material file.

Any ideas/hints?

@lordofcoder
Yes, that doesn't assert any more.
User avatar
Assaf Raman
OGRE Team Member
OGRE Team Member
Posts: 3092
Joined: Tue Apr 11, 2006 3:58 pm
Location: TLV, Israel
x 76

Re: DirectX 10 render system - work-in-progress

Post by Assaf Raman »

I don't know, I haven't looked at it for a long time... I will have a look later this week.
Watch out for my OGRE related tweets here.
User avatar
Karan
Halfling
Posts: 62
Joined: Wed Sep 17, 2008 1:59 pm
Location: Berlin, Germany

Re: DirectX 10 render system - work-in-progress

Post by Karan »

Hi Assaf,
I wonder if the text on
http://www.ogre3d.org/wiki/index.php/He ... der_system
is still up-to-date.
The DX10-Renderer has been WIP for quite some time, would be nice to know more exactly what features are supported and what needs to be done to make it complete.

And have you thought about what needs to be changed/added for DirectX 11 yet (e.g. how the new shader types can be integrated)? I'd be interested in helping with the implementation (when hardware is available, or maybe earlier for things that are the same in DX 10 and 11).
User avatar
Assaf Raman
OGRE Team Member
OGRE Team Member
Posts: 3092
Joined: Tue Apr 11, 2006 3:58 pm
Location: TLV, Israel
x 76

Re: DirectX 10 render system - work-in-progress

Post by Assaf Raman »

We are always happy to get any help.
Regarding the state of the d3d10 render system – well – I am busy doing other things the last few months, the next big stage that I didn’t do yet is creating a better state handling code for OGRE, this has to be low level core work. Regarding unimplemented d3d10 features, well, it is problematic to add d3d10 features to OGRE – that will not be supported by the other render systems.
The work I have done on the d3d10 was without any real need – and I didn't see any real benefit of using d3d10 to render, I am sure when I do see the need for my uses – I will continue the work on this topic.
If you want to contribute – I will be happy to review, try to help and commit if needed any patch you will submit.
Post here whenever you submit a patch and give a link to it – it will be easier for me not to miss it this way.
Watch out for my OGRE related tweets here.
User avatar
Karan
Halfling
Posts: 62
Joined: Wed Sep 17, 2008 1:59 pm
Location: Berlin, Germany

Re: DirectX 10 render system - work-in-progress

Post by Karan »

Hmm, about features that won't be supported by other render systems: It looks like DirectX will always be a few years ahead of OpenGL, but wouldn't it still be worth to support these features somehow even if they are rendersystem-specific? Unfortunately I don't know very much about DirectX (I mean: coding experience) and the Ogre internals yet. I've only done some OpenGL programming before and also looked a bit into the OpenGL Render System implementation (esp. the geometry shaders).
Regarding state handling: Sounds quite complicated for a 'beginner'. Is it?
User avatar
Assaf Raman
OGRE Team Member
OGRE Team Member
Posts: 3092
Joined: Tue Apr 11, 2006 3:58 pm
Location: TLV, Israel
x 76

Re: DirectX 10 render system - work-in-progress

Post by Assaf Raman »

Start with something small and move up.
Watch out for my OGRE related tweets here.
Post Reply