Tutorial de Ray-Casting [+ faça seu Doom o.O]
Enviado: Sex Jul 24, 2009 12:06 pm
Acho que eu deveria estar postando isso no sub-fórum de programação mas acho que isso seria de interesse não apenas de desenvolvedores mas também de fans de Doom e de Wolfenstein 3D.
Para aqueles que não sabem, Ray-casting é uma técnica de rendering 3D (ou pseudo-3D para alguns) utilizada pelo John Carmack nos jogos Wolfenstein 3D e Doom (por isso eu postei isso aqui no Off-Doom mesmo
). Essa técnica consiste em projetar "raios" (como os vetores utilizados no estudo de ótica no Ensino Médio) dos "olhos do jogador", um para cada pixel da tela, e checar quando estes chegam a algum objeto, e assim medir a distância dos olhos do jogador ao objeto e determinar o "tamanho" e a "posição" com que o objeto será desenhado na tela. Além disso com a distâncias também pode-se criar efeitos de shading (objetos mais distantes possuem iluminação menor) e através dos ângulos de visão também podemos obter efeitos como o de crouching (agaichar) e de flying (voar), além, é claro, de termos a possibilidade de rotacionar em 360º. Assim, com essa técnica podemos criar/editar engines de jogos semelhantes a Wolfenstein 3D e Doom (no caso do Doom, teríamos que fazer algumas adaptações pois temos paredes , chãos e tetos de alturas e tamanhos diferentes, mas nada impede de criarmos nosso Source-Port).
Mas ai após ler isso vocês se perguntariam... "E o kiko?"...
Bom, recentemente eu achei na internet o que eu procurava à muito tempo, um tutorial bom e simples de "Ray-Casting" (para, principalmente, que eu pudesse aplicar essa técnica no Core e transforma-lo num FPS "de verdade"). E além disso, esse tutorial não requer que o leitor saiba programar (o que é necessário saber é trigonometria básica do Ensino Médio) e pode ser lido e compreendido por todos (que saibam ler em inglês...). Então é pelo fato deste tutorial ser simples (e poder ser lido em ~30 minutos) que eu to postando ele aqui, pois, imagino eu, que muitos de vocês já devem ter pensado em montar algum Doom (ou Source-Port) ou em simplesmente saber como ele funciona.
Observação para programadores/desenvolvedores: Embora esse tutorial não tenha códigos ele mostra vários algoritmos que podem ser, com não muito esforço, compreendidos e transformados em código.
Tutorial
Espero que gostem! 8)
Off: Se alguém, que leu, tiver alguma dúvida sobre alguma parte do tutorial, favor perguntar neste tópico....
Para aqueles que não sabem, Ray-casting é uma técnica de rendering 3D (ou pseudo-3D para alguns) utilizada pelo John Carmack nos jogos Wolfenstein 3D e Doom (por isso eu postei isso aqui no Off-Doom mesmo

Mas ai após ler isso vocês se perguntariam... "E o kiko?"...
Bom, recentemente eu achei na internet o que eu procurava à muito tempo, um tutorial bom e simples de "Ray-Casting" (para, principalmente, que eu pudesse aplicar essa técnica no Core e transforma-lo num FPS "de verdade"). E além disso, esse tutorial não requer que o leitor saiba programar (o que é necessário saber é trigonometria básica do Ensino Médio) e pode ser lido e compreendido por todos (que saibam ler em inglês...). Então é pelo fato deste tutorial ser simples (e poder ser lido em ~30 minutos) que eu to postando ele aqui, pois, imagino eu, que muitos de vocês já devem ter pensado em montar algum Doom (ou Source-Port) ou em simplesmente saber como ele funciona.
Observação para programadores/desenvolvedores: Embora esse tutorial não tenha códigos ele mostra vários algoritmos que podem ser, com não muito esforço, compreendidos e transformados em código.
Tutorial
Espero que gostem! 8)
Off: Se alguém, que leu, tiver alguma dúvida sobre alguma parte do tutorial, favor perguntar neste tópico....