2013-05-07 1 views
1

Ces jours-ci, je fais des shaders tels que Phong, Gourard, Toon Shader même dans GLSL. J'ai une curieuse question, je veux faire un shader stéréoscopique qui utilise 2 caméras, et la caméra gauche prend la lumière rouge et la caméra droite prend la lumière cyan peut être mis en œuvre en utilisant les combinés dans une caméra, donc il peut être un shader stéréoscopique. Je pense.Qu'est-ce qu'un shader stéréoscopique?

Est-ce que je pense mal ou pas? Je veux implémenter en 3D un objet constitué de primitives 2D.

Répondre

5

Vous aurez probablement besoin de rendre la scène deux fois, une fois pour l'œil gauche et une fois pour l'œil droit. Vous pouvez ensuite mélanger les 2 ensemble. L'une des façons serait de rendre chaque œil dans un FBO à texture différente, puis de combiner ces 2 textures en 1 soit en utilisant un shader personnalisé ou même en utilisant un mélange additif, si vous pouvez rendre chaque œil avec les couleurs correctes commencer avec. (Si l'œil gauche est vraiment le canal rouge et le droit est seulement les canaux vert et bleu, un mélange additif devrait faire la bonne chose, je pense.)

0

Si vous souhaitez créer une image anaglyphe, en utilisant OpenGL les lumières pour colorier la scène est stupide. Utilisez la méthode décrite dans l'autre réponse, à savoir utiliser les FBO pour transformer la scène en textures, puis combinez les résultats dans un shader ou en les dessinant simplement sur deux quadrilatères superposés dans le mode GLBlendFunc (GL_ONE, GL_ONE) avec des couleurs modulées. Ou, dans le cas d'un anaglyphe rouge-cyan, vous pouvez utiliser glColorMask pour sélectionner les canaux de couleur qui vont être écrits.