JavaKazRace - Playable Java racing game demo
PSEmu Pro GPU plug-in
DOSX Utils
SHLight 2004
JavaKazRace DSharingu PSEmuGPU DOSX Utils SHLight 2004

programming

Last day at GDC and some graphics thoughts

Davide's picture
GDC 2008

Today is the last day of GDC. In the past two days food quality has slightly improved. Though after the 1st day, the less expensive pass holders started coming: a lot more people !
There are very long lines to get the lunch boxes, but luckily they go pretty smooth.

A combination of jet-lag and night coding sessions brought me to a completely screwed schedule, with the advantage of not having problems waking up in the morning.. because by 4 am I'm already up (whether I slept 10 or 3 hours 8).

Some lectures were pretty interesting. I've been going to multi-core programming lectures (lots of them, sponsored by Intel) rather than more traditional lectures.. and completely avoided most non-technical lectures.

I bought a RenderMan book and I started writing a simple RenderMan interface !
There is a lot of talk about off-line rendering going real-time, but I don't think that OpenGL and Direct3D 10, 11, 12 are the right way to go about it. There are a lot of things that we 3D programmers on the real-time side have to learn from the pre-rendered world if we don't want to be always lagging behind the pre-rendered movies.

Of course pre-rendered will always win in terms of quality, but it's important to embrace the off-line rendering systems build pipeline and then go on about tricks to scale quality down without having to rebuild models, textures and shaders from scratch.

I see RenderMan the way I saw OpenGL 10 years ago. OpenGL was considered overkill for games, until Carmack started using it with the support of 3Dfx.
If Carmack today said we should be using RenderMan, I bet everyone would rush to it.. but it's me the one that is saying it.. 8)

Merry New Year (2008) and Happy Christmas

Davide's picture

I'm alive and well !
Only busy with the non-virtual side of the World. I had a friend from Italy staying in my apt for a few days, then he left and two more friends came... and the celebrations, the parties, etc etc.
I've also got to write some good code before leaving the office. My first vertex animation compression. I used a 4-tap Daubechies wavelet. Haar seemed pretty worthless.. it turns out that Haar doesn't really do a good job at shifting larger values towards the top of the array that is being transformed.

Currently I'm compressing independently x, y and z values. It works nicely. I'm also using some sort of bitplane compression. But not in a hierarchical fashion like it happens with zero-trees.

Compression algorithms are different from 3D graphics, very interesting. It's a shame that most 3D programmers don't give much thought to it.
Actually I think it's in general a shame that there are "3D programmers". I sometimes define myself a 3D programmer for lack of better explanations, but it's really bullshit. Generally it's only the young punks that think that programming 3D graphics is "the thing".
I'm in charge of a (small) team that researches graphics.. but that's really only just the surface. I believe in looking far and wide, rather than getting stuck on APIs, techniques, tricks and tips like those that appear in those recipe books that come out every month (I know I said that before a few time already 8).

I took many pics in the recent days but now comes the time to clean up for this year.. memories are a double edged sword and technology makes it very hard to cut with the past. People can very easily keep in touch, share media evoking old times.. even my robotic dog manages to put me in difficult situations as it sometimes calls the wrong person at the wrong time !!!

geez
Enjoy your holidays 8)

Freaking Shaders !

Davide's picture

Today I was going to implement a basic shader with support for texture.
Shaders are separate programs for the graphic card that will execute specific code based by some parameters.
I was trying to keep the shaders interface system as simple and generic as possible and I got stuck.
Shaders do suck, but I'm not sure if they necessarily have to suck. What sucks is how one has to think..
For every 3D mesh there is one or more sections (primitive/display lists) with different materials. Each material involves different properties. Vertex data normally includes 3D coordinates, but also texture coordinates, color values, normal coordinates.

Some materials will need no texture coordinates, some will need more than one. Some will need no texture mapping, some will need one texture map per every texture coordinate, some will need a different number of texture maps and texture coordinates.

So each material brings different needs, but that means that there are potentially a different vertex and pixel shader programs, all of which need to be connected to the vertex and material data (a material can list one or more texture maps).  read more »

TChore

Davide's picture

I spent the last few days converting Pascalibs and DSharingu to Unicode. Actually to TCHAR with the UNICODE define, which turns TCHAR to wchar_t.
It was more or less a blood bath, but a long overdue one.
In the process I learned that Microsoft provides a templatized version of secure functions. So:

strcpy_s( dest, _countof(dest), src );

can actually be written as

strcpy_s( dest, src );  read more »

DCPUManager for OSX

Duddie's picture

My first OSX application for controlling frequency of CPU has been released. The application has it's own page here: DCPUManager.

F# you !!

Davide's picture

A new version of F# is available for download.

Well, I know nothing about F# so here are some useful links I found:

cool

Syndicate content