Author Topic: 3D shader programming contract (Ends Sep. 25, 2009)  (Read 4077 times)


  • Administrator
  • Hero Member
  • *****
  • Posts: 6895
  • Karma: 291
    • View Profile
    • RakNet
3D shader programming contract (Ends Sep. 25, 2009)
« on: September 18, 2009, 02:24:58 PM »
I'm working on a new product where a server gets RGBA screenshots from clients in realtime. The server then uses jpeglib to compress this into jpeg. This is fine, but works too slow (20 milliseconds).

I was looking at this page, and at the very end it references a real time shader

Shader is here:

I tried it out and it ran in only 2 milliseconds, which is great and fast enough for me.

The problem I'm having is that I'm too unfamiliar with running cg shaders to integrate the shader into my application in the amount of time I want to spend on it.

What I'd like is for someone experienced with this stuff to take the shader and make a class that can load it, along with other necessary initialization work. The most important part to me is a function to replace jpeglib:

void DoDxtCompression(char *inputRGBA, int inputWidth, int inputPitch, int inputHeight, char **outputDxt1, int *outputLength);

So basically the job is

1. Copy out the shader from the nvidia download.
2. Create a console application that can run the shader, without a bunch of extra junk like the default sample has
3. Write the DoDxtCompression function where a given RGBA source is converted to a dxt1 file.

Possible snag:

You might have to convert the image input format in the shader, since the input is RGBA but the shader expects YCoCg. If so, the conversion should be implemented as efficiently as possible.


1. Class that loads the shader, with a separate function to load dependencies if they are not already loaded.
2. Visual Studio project that demonstrates the class, with all needed dependencies setup.
3. If other things need to be downloaded for this to work, a readme.txt should be included showing where to get each dependency

If you're interested, let me know your hourly rate and how long it would take.

I have nVidia Dual 280's to test on.