Ok, ok, eu admito, estou entediado e brincando com um script de portal como o do Steam.
Eu descobri o seguinte:
- posicionamento relativo das câmeras espelhadas
- renderizar em textura para o portal (a textura é a vista da câmera oposta)
- seleção múltipla de polis (como a câmera está atrás do outro portal, eu seleciono todas as polys atrás da face frontal do portal
Não consigo descobrir como dimensionar a projeção, então ignoro tudo fora da parte traseira do portal. Aqui está uma imagem para explicar.
A parte traseira do portal 2, vista da câmera 2, está sendo exibida na frente do portal 1. Meu problema é a balança. Quero ignorar tudo ao redor da linha pontilhada e ampliar a vista da câmera 2 para que ela se encaixe perfeitamente na frente do portal 1. Um grande problema com essa escala é a perspectiva mudar à medida que você se move. Eu não sou bom em matemática matricial para descobrir isso. Alguém tem uma ideia?
Estou procurando por uma matriz que eu possa definir como matriz de projeção para o cam2 para fazer isso funcionar.
fonte
Respostas:
Considere isso como um problema 2D puro, você tem as duas renderizações como imagens 2D e tudo o que você precisa fazer é sobrepor uma à outra, sem redimensionamento, movimento ou ângulos engraçados de projeção. Se você fizer o trabalho mais simples de colar e copiar que você pode imaginar, ele se encaixará perfeitamente.
Eu acho que você pode querer fazer isso de uma maneira mais transparente, usando a renderização cam 2 como uma textura para a renderização cam 1. Para que isso funcione corretamente, a renderização do came 2 deve ser a textura de um plano que é perpendicular ao ângulo da câmera na renderização 1.
Espero que isso responda à sua pergunta, com certeza será necessário um pouco de truque para que tudo seja pedido da maneira certa.
fonte
Este sistema é desnecessário. Instale apenas o hardware na sala (e seu conteúdo), traduza-o e gire-o, se necessário, para combinar e deixar a GPU fazer a seleção. Isso tem a grande vantagem de tornar o mundo sem problemas - ou seja, você não precisa fazer a IA funcionar especialmente com ele ou algo assim, pois você está estendendo o mundo de forma eficaz, em vez de apenas renderizá-lo duas vezes.
fonte