Bonjour,
Je travaille sur une extension de la balise HTML 5 canvas, cette extension, grâce à la technologie WebGL (basé sur OpenGL ES 2.0), me permet de contrôler, à partir du DOM, la zone de rendu du canvas par un PixelShader écrit en GLSL.
Je valide le principe de mon extension, en écrivant divers jeux de test, je ne rencontre aucun problème jusqu’à ce que je tente de porter l’exemple de texture HDR de la librairie SpiderGL.
J’obtiens ceci une sorte de LDR
Pourtant j’utilise la même image et presque le même FragmentShader. "presque" car, a la différence de l’exemple de SpiderGL, j’utilise un seul vertex buffer ne contenant que la position 2D :
Alors que SpiderGL utilise 2 Vertex Buffer : un pour la position 2D et un autre pour les coordonnées de texture :
Code JavaScript : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 var QuadVertexBuffer = new Float32Array( [ // x y -1.0, -1.0, //sommet bas gauche -1.0, 1.0, //sommet haut gauche 1.0, -1.0, //sommet bas droit 1.0, 1.0 //sommet haut droit ]);
Ce qui m’oblige dans mon Shader à effectuer ce changement de repère :
Code JavaSript : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 var quadPositions = new Float32Array ([ -1.0, -1.0, 1.0, -1.0, -1.0, 1.0, 1.0, 1.0 ]); var quadTexcoords = new Float32Array ([ 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 1.0, 1.0 ]); var quad = new SglMeshGL(gl); quad.addVertexAttribute("position", 2, quadPositions); quad.addVertexAttribute("texcoord", 2, quadTexcoords); quad.addArrayPrimitives("tristrip", gl.TRIANGLE_STRIP, 0, 4);
Toutefois, Je ne pense pas que le problème provient de ce changement de repère, et j’espère qu’il s’agit que d’un renderstate obscure mal initialisé et, ainsi, ne remettant pas en cause l’architecture de ma librairie.
Code GLSL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 vec2 p = (position + 1.0)/2.0; vec4 color = texture2D(image, p);
Je farfouille, actuellement, dans le code de SpiderGL pour trouver une différence d’initialisation du context GL , sans aucun résultat. Bref je sèche un peu ...
C’est pourquoi je sollicite votre aide ! merci.
Partager