Eu só queria saber como criar um espelho dentro de um jogo em 3D? Minha sugestão é / era traçar raios, atingindo o objeto "espelho" e, em seguida, desenhando a imagem de uma segunda câmera no objeto "espelho" localizado no "ponto" do espelho da câmera original, usando o lado atingido do objeto espelho como plano de espelhamento.
Teríamos que usar o único raio vindo do centro da câmera original para determinar o ponto em que o centro da visão está localizado no plano do espelho.
graphics-programming
daemonfire300
fonte
fonte
Respostas:
Se você estiver usando o OpenGL, a seção FAQ do OpenGL 9: Transformações aborda exatamente como fazer isso. E não, não envolve raytracing, pois é compreensivelmente uma maneira muito ineficiente (mas de alta qualidade) de fazer isso.
9.170 Como renderizo um espelho?
Aqui está essencialmente o que a entrada da FAQ diz e o código de exemplo demonstra:
Obviamente, há muito espaço para otimização. Ao renderizar a cena refletida, você provavelmente deve selecionar o máximo possível, pois os espelhos são pequenos e a seleção padrão fora da tela não entra na geometria que está na tela, mas não é vista através do espelho. Você também pode renderizar apenas uma versão simplificada da cena através do espelho. Para efeitos e para obscurecer o usuário de perceber a qualidade reduzida, você pode aplicar um sombreador (por exemplo, desfoque, ou talvez brilhante / desbotado) ao fazer sua renderização espelhada.
Imagino que, se você estiver usando o DirectX, o procedimento seria o mesmo.
fonte