/cg-ray_marching

📈 Projeto desenvolvido em JavaScript/C++ para a disciplina de Computação Gráfica, consta na criação de uma cena dinâmica no estilo Demoscene.

Primary LanguageJavaScript

Ray Marching

Este repositório contém um projeto de computação gráfica desenvolvido com a técnica de Ray Marching. O projeto foi desenvolvido em JavaScript utilizando a biblioteca OpenGL.

Recursos

A aplicação oferece os seguintes recursos:

  • Rotação no eixo X/Y/Z: A esfera pode ser renderizada em todos eixos, inclusive dando zoom no eixo Z.
  • Detalhes: É possível aumentar/diminuir os detalhes na esfera.
  • Brilho: É possível aumentar/diminuir o brilho na esfera.
  • Cor da iluminação: É possível mudar a cor RGBA da iluminação.
  • Animações: É possível mudar entre diversas animações.
  • ✨ Magia ✨

Tecnologias Utilizadas

A aplicação é desenvolvida utilizando as seguintes tecnologias:

  • WebGL: É uma API JavaScript para renderização de gráficos em 3D no navegador, sendo amplamente utilizada para criar aplicações de visualização em 3D.
  • THREE.js: É uma biblioteca JavaScript/API cross-browser utilizada para criar e exibir gráficos 3D animados em um navegador web compatível com WebGL.
  • Ray Marching: É uma técnica de renderização utilizada em computação gráfica que permite criar imagens tridimensionais a partir da interação de raios de luz com objetos virtuais. Essa técnica envolve a criação de uma grade tridimensional de pontos que são percorridos por um raio de luz, permitindo que se determine a distância entre o ponto atual e um objeto virtual.

Como utilizar

  1. Clone o repositório para o seu ambiente local.
  2. Tenha o node instalado em sua máquina.
  3. Execute o comando npm install para instalar as dependências do projeto.
  4. Execute o comando npx vite para iniciar o servidor local.
  5. Divirta-se!

Autor

Esta aplicação foi desenvolvida por Juathan Coelho Duarte. Entre em contato pelo e-mail juathanduarte13@gmail.com para mais informações.
Agradecimentos especiais a Rafael Piccin Torchelsen por todo suporte.