Jump to content

  • Log In with Google      Sign In   
  • Create Account


Member Since 24 Mar 2006
Offline Last Active May 20 2015 09:21 AM

Topics I've Started

Tool release for physically based rendering

09 November 2014 - 12:43 PM

I've recently released an image based lighting baker for physically based rendering to generate preconvonvolved specular cube maps (computed against a user specified brdf) using the seperable method proposed by Epic during Siggraph 2013.


The tool also bakes out the BRDF LUT, and a diffuse irradiance environment map. Cubemaps are saved as both MDR and HDR.


You can find the tool at:
There are also a number of walkthrough and example videos at:

I have also supplied 2 Maya example scenes to test the cubemap outputs using Viewport 2.0 and cgfx.


Please contact me through my github account if you find any bugs, have questions or have any suggestions. The code is based on some of my older framework code. You'll have to hold your nose around some of the more horrible bits.


Hopefully some of you find this useful.

If there is any interest, I'd consider writing an article on this.


I thought I'd throw in another quick demo of this tech applied to character rendering. (Still proof of concept really):

D3D11_FILL_WIREFRAME order of magnitude slower with 3xx.xx drivers?

09 December 2012 - 04:48 PM

Has anyone else noticed that D3D11_FILL_WIREFRAME is an order of magnitude slower on 3xx.xx drivers for 480, 580 and 680 cards no matter what the render state is?
The nvidia drivers have become so incredibly unstable in wireframe on consumer cards that I resorted to geometry shaders for reasonable performance several months ago. I was merely curious.

FillMode=D3D11_FILL_WIREFRAME results in no shading with nvidia 3xx.xx drivers

10 July 2012 - 03:07 PM

I have noticed that attempting to render with fillmode=D3D11_FILL_WIREFRAME and AntialiasedLineEnable=false appears to result in the rasterizer not evaluating the pixel shader with nvidia 3xx.xx drivers.

- Raster ops succeed on 296.10 drivers and previous.
- Raster ops succeed on 3xx.xx drivers with fillmode=D3D11_FILL_WIREFRAME and AntialiasedLineEnable=true.
- Raster ops appear to fail on 3xx.xx drivers with fillmode=D3D11_FILL_WIREFRAME and AntialiasedLineEnable=false.

I was wondering if anyone else has encountered the same problem?

Tested hardware:
480GTX (SLI enabled/disabled)
580GTX (SLI enabled/disabled)
680GTX (SLI enabled/disabled)


Windowed performance issues with OMSetRenderTargetsAndUnorderedAccessViews

03 September 2010 - 05:29 AM

Has anyone else noticed performance issues in windowed mode when binding UAV's with OMSetRenderTargetsAndUnorderedAccessViews?
I'm wondering if this is a buffer configuration, device configuration, driver, or vendor issue...
I've disabled all of the code that actually uses the UAV's. For a fairly complex scene (over a million tris with some tessellation thrown in), I'm getting 80 fps@1920x1200 in fullscreen. In windowed mode the same scene configuration plummets to around 10fps...
If I remove the OMSetRenderTargetsAndUnorderedAccessViews, the frame rate goes back to normal. I'm going to start dicking around with nsight or whatever nvidia calls it to get some proper timings, but I was just wondering if this is a known issue?

I'm also wondering if this is some windowed + UAV + sli problem.
I'm running 2x GTX480's... Anyway, experimentation awaits...

Wireframe shader without wireframe state

10 July 2010 - 06:43 AM

I have spent the last few days implementing a gregory patch tessellation system in dx11 (based on http://research.microsoft.com/en-us/um/people/cloop/sga09.pdf)
I'm now putting together a couple of demo vides, however, due to the pathetic render speed of wireframe rendering in DX11 hardware I am looking for options to render the wire frame in the pixel shader in the same pass as I render the filled mesh geometry.
I'd prefer to not use the geometry shader, or a post process.
Does anyone know how to go about doing this?