Para mayor claridad, comienzo con mi pregunta: ¿¿Tiene RenderMonkey un error en el mapeo de flujo TEXCOORD para GLSL?
¿Es posible usar (en el código de sombreado) del atributo personalizado nombrar que yo pongo para el uso TexCoord en el (OpenGL) mapeo de la cadena de RenderMonkey 1.82 o tengo que usar gl_MultiTexCoord0? (La pregunta podría ser válida para el uso normal también, es decir, nombre de encargo o gl_Normal)
Antecedentes:
Usando RenderMonkey la versión 1.82. He utilizado con éxito el mapeo de flujo para mapear la "posición" de atributo de vértice general (y tal vez "normal"), pero las coordenadas de textura no parecen ser reenviadas correctamente. Para el código de sombreado, uso #version 330 y el calificador "in" en GLSL, lo cual debería estar bien, ya que RM no compila los sombreadores en sí (el controlador OpenGL sí).
He intentado ambos archivos .obj y .3ds (exportados de Blender), y cuando comprobaba el archivo .obj de wavefront, toda la información de coordenadas de textura está allí, así como las posiciones de los vértices y las normales.
Si no es posible, el mapeo de flujo está roto y no tiene sentido nombrar las variables en el editor de mapeo de flujo (además del flujo de posición de vértices, que funciona), ya que uno tiene que usar el built-in variables de todos modos.
Actualización: Si se utiliza el desuso variables incorporadas, uno tiene que usar el modo de compatibilidad en el ejemplo de sombreado
#version 330 compatibility
out vec2 vTexCoord;
y, en la función principal:
vTexCoord = vec2(gl_MultiTexCoord0);
(Ahora Tampoco estoy seguro del mapeo de corriente de las normales. Tan pronto como obtuve las coordenadas de textura funcionando, tuve problemas normales y tuve que volver a gl_Normal.)
Aquí hay una imagen de una solución de trabajo, pero con variables incorporadas (y sí, la variable texcoord comentada en la imagen no tiene el mismo nombre que en el cuadro de diálogo de asignación de ruta, pero tenía el mismo nombre cuando traté de usarlo, así que está bien):
no tengo la una Haga clic para su pregunta, pero puedo sugerir una alternativa multiplataforma, ShaderMaker: http://cg.in.tu-clausthal.de/teaching/shader_maker/index.shtml – appas
Gracias por su sugerencia. No he evaluado ShaderMaker, pero parece estar dirigido a la tubería fija. Aparentemente hay otro proyecto llamado Lumina que también podría ser una alternativa. – Deorbit
¿Puede Render Monkey soportar 3.30 sombreadores en absoluto? Pensé que solo para OpenGL 2.1 ... –