Friday, August 28, 2009

the simple cuda test


The refactoring and rewriting of luxinia's internals goes on, prior open sourcing the full project (cleaning up code and trying to apply some of what was learned). On the side to have some fun, further dx10 features (ogl equivalents) are added. So more of GL's bufferobjects features are made accessible on the Lua side.
A result was a small sample of coding up a lua extension dll, which runs a cuda kernel on a vertexbuffer. I never played with Cuda before, and kinda missed the built-in vector types of Cg, ie that float3*flaot must be done via operator overloading in cuda... means the compiler has to do vectorizing himself (but he can, compared to Cg). I've modified the simpleGL nvidia sample to make use of custom vertex color attribute. It's really nice that cuda supports the datatypes, transform feedback wouldnt allow you to store back to smaller datatypes.
Next comes up adding transform feedback, so that you can specify output streams in a shaderpass and streamobject will be a resource like a texture, assignable to material instances. First will only do for nvidia profiles. I still use Cg runtime quite a bit, so doing it for their GLSL profiles is a bit ugly at the moment. Not sure yet if I stick to Cg runtime, or just use it for compilation and do parameter and program creation all myself, would be a bit "what you want is what you get", but also more work now.

Tuesday, August 11, 2009

the new siggraph stuff

just looking at the various stuff coming from siggraph (check Atom blog for some onsite info)

light propagation (first bounce GI) in CryEngine3
http://www.crytek.com/technology/presentations/

And more links from siggraph at beyond3d and another interesting slides by Epic's Tim Sweeney

on a side-note, I did not go for the GC in C, but use a more simple refcounter similar to boost's shared/weak pointers with a dedicated allocator.

Saturday, August 8, 2009

the idtech5 virtual texturing

just saw this http://s09.idav.ucdavis.edu/talks/05-JP_id_Tech_5_Challenges.pdf on gamedev, some slides about the virtual texturing in idtech5 (Rage).
Other recent things I stumbled upon were of course the OpenGL 3.2 specs (yeah they finally get some momentum and turned "compatibility" into a profile, not that ugly giant extension). I am currently looking into C hashing libs and a garbagecollector for C. Reason is I want to better split the luxinia GC system from Lua, so that we can move on to using SWIG, ie providing a proper C api (and not just the Lua binding) but keep the reference system working. Smart pointers are not an option as it's too much of an issue to prevent cycles and in general I want to keep the core engine Ansi C.

Thursday, July 16, 2009

the good read

Bruno, a friend of mine, gave me a link to a very nice essay today
http://www.longnow.org/views/essays/articles/ArtFeynman.php

It's about the early days of "Thinking Machines", a company that built parallel computers in the early 80s, and how Richard Feynman helped them in an almost fatherly role.

And stumbled upon anther creative mind today, Michel Gagne. Very cool illustrations and the latest game based on his universe looks fantastic.

Saturday, July 11, 2009

the 3dsmax sdk frustration

3dsmax sdk gives me so much love... not. Today found out (the hard way) that their BitArray.EnumSet function is broken in 64 bit...

on a sidenote the SDK states if you want something you draw in viewport to have a fixed nonscaling size, to use
vpt->GetVPWorldWidth(wpt)/360.0f;
however this isnt correct, you want to use
aspect = ((float)gw->getWinSizeX()/(float)gw->getWinSizeY());
aspect = max(aspect,1.0f);

(vpt->GetVPWorldWidth(wpt)*aspect)/(float)gw->getWinSizeX();

Tuesday, June 30, 2009

the jump page

I will update this post, with useful links.

best "state of the art" stuff, mostly by top companies, latest tech (starcraft2, crysis..)
SIGGraph course on real-time rendering
(2006) http://developer.amd.com/media/gpu_assets/Course_26_SIGGRAPH_2006.pdf
(2007) http://ati.amd.com/developer/SIGGRAPH07/Course28-Advanced_Real-Time_Rendering_in_3D_Graphics_and_Games_SIGGRAPH07.pdf
(2008) http://ati.amd.com/developer/SIGGRAPH08/Siggraph2008-Advances_in_Real-Time_Rendering_Course.pdf
http://www.codersnotes.com/notes/papers-please (overview on classic graphics papers)
(2009) more to come: http://www.bungie.net/News/content.aspx?type=topnews&link=Siggraph_09

Siggraph 2008 GI course: http://www.graphics.cornell.edu/~jaroslav/papers/2008-irradiance_caching_class/index.htm

and because I mostly just grab links from these:
company publication sites
(pixar) http://graphics.pixar.com/research/ (the mecca)
(guerilla) http://www.guerrilla-games.com/publications/dr_kz2_rsx_dev07.pdf (killzone 2 tech overview)
(valve) http://www.valvesoftware.com/publications.html (valve has lots of papers on their tech, really good stuff)
(bungie) http://www.bungie.net/Inside/publications.aspx (also spilled the important beans similar to valve)
(insomniac) http://www.insomniacgames.com/tech/techpage.php (more ps3/code oriented)
(epic) http://unrealtechnology.com/whats-new.php?ref=downloads
(nvidia) http://developer.nvidia.com/page/documentation.html
(ati) http://ati.amd.com/developer/techreports.html
(crytek) http://www.crytek.com/technology/presentations/

hair
http://graphics.stanford.edu/papers/hair/hair-sg03final.pdf
http://ati.amd.com/developer/gdc/scheuermann_hairrendering.pdf (real-time variant)

shading
http://www.valvesoftware.com/publications/2006/SIGGRAPH06_Course_ShadingInValvesSourceEngine.pdf
http://www.bungie.net/images/Inside/publications/presentations/lighting_material.zip
http://web4.cs.ucl.ac.uk/staff/t.weyrich/projects/phd/weyrich-2006-phd-lowres.pdf

compression
http://developer.nvidia.com/object/real-time-normal-map-dxt-compression.html

meshing / deformation
http://www2.in.tu-clausthal.de/~hormann/parameterization/index.html
http://graphics.uni-bielefeld.de/publications/papers/
http://www.cs.nyu.edu/~sorkine/

filter/image
http://people.csail.mit.edu/sparis/bf_course/
http://web4.cs.ucl.ac.uk/staff/t.weyrich/projects/xlrcam/kim09xlrcam-lowres.pdf

architecture
http://beautifulpixels.blogspot.com/2008/08/multi-platform-multi-core-architecture.html
nice post by a gamebryo dev on the different architectures.
http://www.crytek.com/fileadmin/user_upload/inside/presentations/2009/A_bit_more_deferred_-_CryEngine3.ppt

raytracing
http://ompf.org/forum/viewtopic.php?f=3&t=9

mostly code related, sometimes however hints at what tech is to come in future
individuals / blogs
timothy farrar (human head): http://farrarfocus.blogspot.com/ http://www.farrarfocus.com/atom/
ignacio castano (nvidia): http://castano.ludicon.com/blog/
wolfgang engel (former rockstar): http://diaryofagraphicsprogrammer.blogspot.com/
tom forsyth (former radgametools, now intel): http://home.comcast.net/~tom_forsyth/blog.wiki.html
Iñigo Quílez (demoscene): http://iquilezles.org/www/
Kun Zhou (researcher): http://www.kunzhou.net
Rui Wang (researcher): http://www.cs.umass.edu/~ruiwang/#publications
Carsten Dachsbacher (researcher): http://www.vis.uni-stuttgart.de/~dachsbcn/publications.html
Szirmay-Kalos László (researcher): http://www.iit.bme.hu/~szirmay/puba.html
http://erdani.org/publications/
Marc Stamminger (researcher): http://www9.informatik.uni-erlangen.de/people/publishedby/marc/stamminger/
computer graphics at williams college: http://graphics.cs.williams.edu/papers/
Jiaping Wang(researcher) http://www.lightthoughts.com/jpwang/
icare3d (researcher): http://www.icare3d.org/blog_techno/
Jaroslav Krivanek (researcher) http://www.graphics.cornell.edu/~jaroslav/

Sunday, June 14, 2009

the lowpoly past - part II - freelancing

just coming home from a gorgeous once in a lifetime lovely fairytale wedding of my cousin. First some more background info.

During studies I did a little bit of freelancing for game art. Thanks to a colleague from the first mod I worked on (TerrorQuake2), I made contact with Lemsko, a German 3d artist and virtual aviation enthusiast. With his support I did work for IEN on warbirds2 and their tank game armored assault... yeah back then I was into military models quite a bit.










For a fantasy competitive jump'n run quake mod following animations were created. I've also done a bit of character work for that project, which died soon.



The earlier military model work lead thru freelance work for esimgames.




As my studies required lots of time, I only did very little freelance work basically to keep the 3dsmax license floating ;)