Warning: strpos() [function.strpos]: needle is not a string or an integer in /home/www/6c0b12205eaced73565c8eab34735279/web/jegx/index.php on line 41

Warning: strpos() [function.strpos]: needle is not a string or an integer in /home/www/6c0b12205eaced73565c8eab34735279/web/jegx/index.php on line 48
JeGX's DevBlog
Tuesday, May 29, 2007, 09:48 AM - OpenGL
Today two new differences between Radeon and Geforce GLSL support.

1 - float2 / vec2
vec2 is the GLSL type to hold a 2d vector. vec2 is supported by NVIDIA and ATI. float2 is a 2d vector but for Direct3D HLSL and for Cg. The GLSL compilation for Geforce is done via the NVIDIA Cg compiler. Here is the GLSL version displayed by GPU Caps Viewer: 1.20 NVIDIA via Cg compiler. That explains why a GLSL source that contains a float2 is compilable on NVIDIA hardware. But the GLSL compiler of ATI is strict and doesn't recognize the float2 type.

2 - the following line:

vec2 vec = texture2D( tex, gl_TexCoord[0].st );

is valid for NVIDIA compiler but produces an error with ATI compiler. One again, the ATI GLSL compiler has done a good job. By default, texture2D() returns a 4d vector. The right syntax is:

vec2 vec = texture2D( tex, gl_TexCoord[0].st ).xy;

Conclusion: always test your shaders on both ATI and NVIDIA platforms unless you target one platform only.

view entry ( 2307 views )   |  0 trackbacks   |  permalink   |   ( 3 / 1053 )

R600 is VTF-capable 
Tuesday, May 29, 2007, 09:44 AM - ATI
"All of the fetch and filtering capabilities are available to each thread type, making the samplers completely agnostic about what's using them."

This line from Beyond3D article on R600 means that vertex, geometry and pixel shaders can access to texture samplers. So Vertex Texture Fetching is now available with Radeon 2k series :thumbup: What's more, the R600 can handle very large texture up to 8192x8192 just like the G80.

view entry ( 1296 views )   |  0 trackbacks   |  permalink   |  related link   |   ( 3 / 1937 )

HDRR and DoF 
Thursday, May 24, 2007, 11:57 AM - OpenGL
Here are some screenshots of few demos I'm working on these last days. I played with HDRR (High Dynamic Range Rendering) and DoF (Depth of Field) algorithms. These techniques are really terrific in a visual point of view but are somewhat hard to implement and the hardware must be poweful and especially well configured (the right graphics drivers!!!). I'll add the HDDR to Hyperion asap.

view entry ( 2833 views )   |  0 trackbacks   |  permalink   |   ( 3 / 1767 )

Le Magazine de Developpez.com 
Tuesday, May 22, 2007, 12:57 PM - Programming
Je viens de recevoir une news sur le magazine de developpez.com, le portail des developpeurs francophones. Je ne connaissais pas l'existance de ce mag qui en est poutrant déjà au numero 9. Il y a un petit article sur la 2D/3D: "Présentation de la bibliothèque IrrKlang". Ca tombe bien c'est quelque chose que j'avais en tete: faire un plugin sonore pour Hyperion basé sur IrrKlang. IrrKlang ressemble à OpenAL mais d'après l'article peut lire directement des mp3, ogg et wav. De base, OpenAL ne peut lire que des wav. Mais tout comme OpenAL, IrrKlang ne donne pas accès au buffer des fréquences au contraire du surpuissant FMOD et c'est dommage. Ceci étant, un plugin IrrKlang verra le jour...
view entry ( 1717 views )   |  0 trackbacks   |  permalink   |  related link   |   ( 3 / 1781 )

Dynamic branching and NVIDIA Forceware Drivers 
Tuesday, May 22, 2007, 12:56 PM - NVIDIA
Several weeks ago, I posted on Beyond3D a thread on my dynamic branching benchmark. I wondered why dynamic branching performances on Geforce 7 were worse than ones on Geforce 6 or 8. I believe I've got the answer: Forceware drivers.

Here are some new results where ratio = Branching_ON / Branching_OFF :

7600GS - Fw 84.21 - Branching OFF: 496 o3Marks - Branching ON: 773 o3Marks - Ratio = 1.5
7600GS - Fw 91.31 - Branching OFF: 509 o3Marks - Branching ON: 850 o3Marks - Ratio = 1.6
7600GS - Fw 91.36 - Branching OFF: 508 o3Marks - Branching ON: 850 o3Marks - Ratio = 1.6
7600GS - Fw 91.37 - Branching OFF: 509 o3Marks - Branching ON: 850 o3Marks - Ratio = 1.6

7600GS - Fw 91.45 - Branching OFF: 509 o3Marks - Branching ON: 472 o3Marks - Ratio = 0.9
7600GS - Fw 91.47 - Branching OFF: 509 o3Marks - Branching ON: 472 o3Marks - Ratio = 0.9
7600GS - Fw 93.71 - Branching OFF: 508 o3Marks - Branching ON: 474 o3Marks - Ratio = 0.9
7600GS - Fw 97.92 - Branching OFF: 505 o3Marks - Branching ON: 478 o3Marks - Ratio = 0.9
7600GS - Fw 100.95 - Branching OFF: 508 o3Marks - Branching ON: 480 o3Marks - Ratio = 0.9

my conclusion is: dynamic branching in OpenGL works fine (read the performance are better than without dynamic branching: ratio > 1) for forceware <= 91.37. For the drivers >= 91.45, the ratio drops under 1. Dynamic branching works as expected for gf6 and gf8 but not for gf7 since forceware 91.45. So the bug explanation is a plausible answer (and it's easily understandable: in this news , we learnt that a forceware driver is made of around 20 millions of lines of code - a paradise for a small bug!!!). I've also done the test with the simple soft shadows demo provided with the NV SDK 9.5. The results are the same.

I've just done the bench with a 7950gx2 and the latest forceware 160.02 and dynamic branching is still buggy...

view entry ( 1319 views )   |  0 trackbacks   |  permalink   |   ( 3 / 1762 )

Dell XPS M1710 GeForce Go 7900 GTX et OpenGL 2.1 
Tuesday, May 15, 2007, 11:03 AM - NVIDIA
Vous avez un ordi portable et vous en avez marre de ces sales pilotes graphiques jamais à jour de la part des constructeurs ? C'est mon cas avec le Dell XPS M1710 équipé d'une geforce go 7900 gtx. Les derniers pilotes officielles chez Dell ou chez NVIDIA sont les 84.xx... Vu le prix d'un portable de ce type, c'est quand même honteux de leur part :thumbdown:

Mais heureusement qu'il y a des petits gars bien motivés (par exemple http://www.laptopvideo2go.com) qui bricolent les derniers pilotes graphiques pour les rendre compatibles les portables. Donc j'ai décider d'installer les Forceware 158.18 sur mon laptop sous WinXP. Voilà comment faire et c'est super simple:

1 - download des pilotes 158.19: http://www.laptopvideo2go.com/drivers/xp
2 - download du fichier INF modifié sur la même page: http://www.laptopvideo2go.com/drivers/xp
3 - décompression du driver 15819.exe dans un répertoire par exemple fw15819/
4 - remplacement du fichier INF d'origine par celui modifié
5 - lancement de l'installation de manière assez classique: setup.exe

Pour ma part cette installation s'est très bien déroulée comme le montre les deux captures d'écran de GPU Caps Viewer:

Maintenant mon laptop supporte l'OpenGL 2.1 et le GLSL 1.2 :thumbup: et surtout il est capable de faire tourner mes dernières petites démos qui utilisent le HDR, les multiple render targets, le DOF... Les images arrivent bientot :winkhappy:

view entry ( 3701 views )   |  0 trackbacks   |  permalink   |   ( 3 / 1838 )

Asus Silient Square Pro 
Tuesday, May 15, 2007, 11:02 AM - Hardware
Voilà le nouveau ventirad pour le cpu que j'ai installé sur ma machine de test:

Je dois dire que j'en suis assez satisfait. Facile à installer, ce ventirad d'Asus est quasiment inaudible. Et il rempli à merveille sa fonction de dissipation car les aillettes restent froides en permanence. Evidemment, je pense que c'est mon AMD X2 3800+ qui ne chauffe pas assez mais par rapport au ventirad d'origine livré avec le cpu, la différence est nette.

Du bon matos :thumbup:

view entry ( 3556 views )   |  0 trackbacks   |  permalink   |   ( 3 / 1774 )

Embedded Your Shader Souce Code In Your C/C++ Apps 
Sunday, March 18, 2007, 10:58 AM - Programming
The NVIDIA developer blog shows a way to include shaders codes to your
windows exe: http://blogs.nvidia.com/developers/2007 ... ader.html.

But this example is not fully operational. I slightly modified the code to make it totally operational (I compiled it on vc++ 6.0):

1) Add a define to your resource.h file:
#define IDF_SHADEFILE 1000

2) Add an entry in your resource.rc file:

3) Use the resource in your code:
HMODULE hModule = GetModuleHandle(NULL);
HRSRC hResource = FindResource(hModule, (LPCTSTR)IDF_SHADERFILE, RT_RCDATA);
DWORD dwSize = SizeofResource(hModule, hResource);
HGLOBAL hGlobal = LoadResource(hModule, hResource);
LPVOID pData = LockResource(hGlobal);
// Cast pData to a char * and you have your shader
char *shader_code = (char *)pData;

// Now do whatever you want with shader_code pointer.
// Do not forget that shader_code is not a zero-terminated string!
// Use dwSize to handle that.


SimplePHPBlog sucks a little bit because it can't display properly a preformated block of code. I have to use the pre tag and tidy up manually the code :thumbdown:
view entry ( 3705 views )   |  0 trackbacks   |  permalink   |   ( 3 / 1962 )

Sunday, March 18, 2007, 10:49 AM - Software
I found this morning a tool called NetMeter. It's a tiny bandwidth monitor that shows how much data's going in and out of your PC over the interwebs.

view entry ( 1426 views )   |  0 trackbacks   |  permalink   |  related link   |   ( 3 / 1854 )

Online Multiplayer Game With Hyperion 
Saturday, March 17, 2007, 07:13 PM - Hyperion
If you want to see how Hyperion can play with the network, just have a look at this topic in the oZone3D.Net forums:

Jusan is doing a remarkable work and I'm always surprised to see what enthusiast people can do with Hyperion. Keep up the good work Jusan :thumbup:
view entry ( 1295 views )   |  0 trackbacks   |  permalink   |  related link   |   ( 3 / 977 )

<<First <Back | 1 | 2 | 3 | 4 | 5 | 6 | 7 | Next> Last>>