Wednesday, September 17, 2014

Tardis, Now with Ambient Occlusion

Thought I should throw some Ambient Occlusion its way, because it makes such a huge difference. I also modified the way the geometry is created, it's just one corner of the Tardis now, mirrored around the X and Z axis with abs(). This allowed me to use less objects, allowing me to use more objects! So now all of the windows have the panes on them, and I added some of the little bars around the roof light. I'm thinking the next step is to improve the time vortex, describing it as "basic" is being needlessly polite. Here's the link.

Another Dr Who Themed Shader Experiment

Here's another ShaderToy, this time based off of the time coordinates as seen in Doctor Who (2005) S7E13 - "The Name of the Doctor". While the picture does justice to the line drawing algorithm I created for the task (I was offline at the time), to really appreciate it you need to see it moving. This one maintains a constant framerate on my Nexus5, so should work pretty well on WebGL devices with at least that much power.

Wednesday, September 10, 2014

Shadertoy's Dalek was Lonely

So I decided I'd create this shader to keep him company. Then a nice chap called Andre told me I could use his awesome sound shader (sound shaders a black magic to me, which makes Andre's accomplishment all the more impressive) as background music. Took me about 5 hours of effort, which included "figuring out how this raymarching biz works". The lighting is a bit off but I figure light is supposed to be funny in the time vortex. Also I'm not aware of a way to do ambient occlusion in a raymarching fragment shader.

Friday, January 17, 2014

Starting to Look Impressive - Crytek Sponza

You're not really showing off your real-time rendering code unless you're showing the Crytek Sponza. Sadly no GI... yet.

I've added *basic* LOD support, and added the all important colour bricks. Lighting bricks are the next brick in line. There are still some odd ray errors, and the colour does odd things when it's really thin (which at the moment, is always). Here's the commit.

Monday, January 13, 2014

Same Screenshot, Less Glitches, Bonus Numbers

This camera location was very carefully selected for it's absence of graphical errors. An error that is believed to be both a ray error and an allocation error is visible if the camera moves a couple of centimetres to the right, and moving any further away moves into a higher LOD level — mip mapping isn't implemented yet, so it disappears. On the bright side, it disappears! No more garbage where there should be an empty mip-level.

Here in Australia it's summer time, which is a *bad* time for GPU computing if one does not possess air-conditioning. As the result of an incident, the program now uses the very nice NVLM on Nvidia cards, and the not quite as nice ADL on AMD cards to query the GPU temperature. The windows version of the NVLM code has not been tested - it has however been proven correct. If your drivers are new-ish, it should just work, or not, and the "or not" has been tested and does behave nicely. The AMD ADL stuff *should* work... at least I've tested it not working, and it not works as intended.

The OpenCL renderer has been removed pending me getting my hands on something with more modern OpenCL support. It lives on in the repo history. The Stargate model comes from here.