lrdass / cns

raytracer/rasterizer source code of tomatofractal.io

Home Page:http://tomatofractal.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Codebase da softengine - Rasterizador 3D do Fractal de Tomate

Esta é a codebase do projeto de renderizador softengine (sem acelerador grafico; apenas CPU) do blog http://tomatofractal.io/category/rasterizer.html

Atualmente implementado:

  • Biblioteca basica vetores/Matrizes
  • Rasterizador de triangulos
  • Bresenhan para linhas
  • Backface culling
  • Matriz de projeção
  • Projecao > Viewport > Canvas pipeline
  • Flat-shading
  • Gourad shading
  • Phong shading
  • Mapeamento de texturas
  • Bilinear filtering
  • Mipmapping
  • Stencil shadows

O objetivo deste repositorio é com fins didaticos, futuras melhorias vao incluir:

  • Melhoramento da biblioteca de Algebra linear (usando closures)
  • Adicionar à biblioteca de Algebra Linear Quaternions
  • Implementaçao de um rasterizador com WebGL2
  • Implementaçao de shadow map
  • Algoritmos de flocking apenas para benchmark
  • Refatoraçao da codebase com Typescript
  • Refatoraçao da codebase para usar melhores padrões de projeto com melhores design patterns
  • Parser de arquivos wavefront .obj

A meta deste blog é a partir dos conceitos basicos de rasterização construir, do zero, um simples motor grafico para jogos 3D para browser. A intenção é ir do 0 à uma ferramenta capaz de criar jogos simples, sem animaçoes de bones.

Captura de Tela 2024-03-08 às 23 52 57 Captura de Tela 2024-03-10 às 09 21 12 Captura de Tela 2024-03-15 às 19 10 26

image

Como rodar:

Apos clonar o projeto, basta rodar: yarn para instalar as dependencias

e para rodar:

yarn dev

Codebase for rasterizer

This is the codebase for the rasterizer being developed at tomatofractal.io

About

raytracer/rasterizer source code of tomatofractal.io

http://tomatofractal.io

License:GNU General Public License v3.0


Languages

Language:JavaScript 98.4%Language:HTML 1.6%