Saturday, November 14, 2009

function call highlighting


I am quite a visual assist addict, and miss some of its features in other IDEs. For luxinia's Lua and Cg use, I tweak the estrela editor to my own needs. wxWidgets's scintilla version, doesn't allow you to use the style-bits as flexible as I'd love to do. As a result the lexer overwrites the manual changes one does. But with the indicators at least, you can make sure they aren't modified. So the latest addition is function-call highlighting, something I really like in VA.

As you might see on the text I am also working on a Lua binding for OpenCL. Whilst I've used manual bindings before, this time I used swig. It needed a few "dirty" hacks and a swigutility library, but now it more or less works fine. Binding, sources and samples will come with a future luxinia release.

Wednesday, October 14, 2009

the realtime GI course

Thorsten just told me about the realtime GI course (Siggraph 2009) being available online
http://www.cs.ucl.ac.uk/staff/j.kautz/RTGICourse/

He also hinted me towards the GI compendium
http://www.cs.kuleuven.be/~phil/GI/

Friday, September 18, 2009

the virtual endoscopy


Here you can see the lung. For a upcoming presentation, I've been messing with some settings with the endoscopy system I've developed a year ago with focus on nasal sinuses, however it works for other hollow organs just fine. My supervisor on this project (diploma thesis) had made contacts with the university clinic in Leipzig and together with a leading ENT-surgeon, the usability of the system was tweaked. At the end it was used in larger clinical study at two locations with some 100+ patients (who prefered virtual pictures over video hehe). Texturing is tri-planar and several post steps are needed to smooth normals and so on (inter-leaved sampling, hitpoint refinement....).
More details about implementation can be found in one of the publications around this project:
SinusEndoscopy-IEEE Vis 2008 Paper, Slides

Main focus was a surface depiction that is similar to what the surgeons are used too (but not too real, to prevent false impression of too much data security, CT cannot show tissue diseases). The effect is similar to the Cascades-Nvidia demo.

And some videos:
IEEE Vis 2008 Video
Colonoscopy
Neck endoscopy

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 ;)

Thursday, June 11, 2009

the lowpoly past - part I - quake days

From early on I enjoyed watching movies a lot, especially the technical effects have always fascinated me. Seeing Star Wars for the first time, I was amazed at how convincing the scenery was set; the world seemed so real. After watching the Terminator, Abyss and other early CGI movies, this new technique of special effects got my attention.Finally, Jurassic Park in 1993, assured me that I want to do that in future, I want to create my own dinosaurs and bring my own worlds to life... This is why I got into 3D-modelling and animation.

CGI knows almost no limits, the creative mind can fulfill its dreams to all extents. This fascinated me, and still does. I enjoyed playing with LEGO's a lot, and once I moved from the floor to a computer desk, it was finally possible to bring things to life on the screen. With a 3D studio r2 dos student version I made my first steps in 3d. Having no internet and no tutorials I had to bite thru the complexity of this program myself. Once I got the hang of it, I wanted to do big stuff immediately, but the projects I set for myself were always too big, or too time consuming; I preferred playing games a lot more. Another reason was that I didn't really want to model all the things necessary, I wanted to animate it... so no project was finished, but I gained some experience on timing, camera movement, etc...

Later on I united my love for 3d with my love for computer games. After getting into the internet I searched for better software, tutorials and of course games. The Quake2 modification community caught my attention. There I found other young developers who create their own games, and of course need 3d art aswell, models of weapons, characters... My first job was being a modeller for Terror Quake 2 around late 1998. After the team was restructured I also took over the job as animator. Since this team, which later changed name to TeamHavoc, absorbed me I have been working on mods for quite some time. I was lead animator for a Quake3 mod, called Urban Terror. Thru this team's skill and good connections to id software, I managed to get a license of 3dsmax at quakecon 2000, thanks again to my teammates from Silicon Ice Development, to id software and to discreet for giving away some copies to young developers.

Here is some work for urbanterror (mostly animations, but also some weapon models):








With starting my studies of "computational visualistics" at the Otto-von-Guericke University of Magdeburg in 2002 I left the development team of urbanterror before beta3 release and got more into coding myself.