Cubo 3d com Javascript Canvas API.

Overview

Projection engine

Motor gráfico escrito em javascript "from scratch".

Ambiente de teste.

Esse projeto não faz uso algum de NENHUMA API para renderização gráfica (como WebGL), tudo é feito do zero usando o contexto 2D do canvas e muita matemática.

Features

  • Suporte a modelos no formato .obj com as faces dos triângulos.
  • Shader básico baseado no normal do triângulo.
  • Rotação X, Y e Z.
  • FOV e Aspect ratio.
  • Clipping.
  • Projeção de perspectiva baseado no FOV/AspectRatio e valores para Z próximo e Z distante.
  • Vertex highlight / wireframe.
  • Configuração de cores para vertex e wireframe.
  • Keybindings.
  • Sensibilidade dos controles.
  • Movimentação da câmera nos eixos X, Y e Z / Rotação da câmera
  • Geometry culling baseado no normal no triângulo.

Em desenvolvimento

Status Implementação Razão Prioridade
[x] Index buffer Performance Alta
[ ] Vertex buffer Performance Alta
[ ] Depth buffer Performance Alta
[ ] Suporte a multi-thread Performance Alta
[ ] Suporte a processamento de shaders na GPU Performance / escalabilidade Alta
[ ] Texturas Visual Média
[ ] Inputs melhorados Visual Média
[x] Yaw e pitch da câmera Visual Alta
You might also like...

Domvas implements the missing piece that connects the DOM and Canvas.

Domvas Overview Domvas implements the missing piece that connects the DOM and Canvas. It gives to the ability to take arbitrary DOM content and paint

Dec 29, 2022

Generates an image from a DOM node using HTML5 canvas

DOM to Image What is it dom-to-image is a library which can turn arbitrary DOM node into a vector (SVG) or raster (PNG or JPEG) image, written in Java

Jan 3, 2023

Phaser is a fun, free and fast 2D game framework for making HTML5 games for desktop and mobile web browsers, supporting Canvas and WebGL rendering.

Phaser is a fun, free and fast 2D game framework for making HTML5 games for desktop and mobile web browsers, supporting Canvas and WebGL rendering.

Phaser - HTML5 Game Framework Phaser is a fast, free, and fun open source HTML5 game framework that offers WebGL and Canvas rendering across desktop a

Jan 7, 2023

Framework for HTML5 Canvas oriented 2D video games

Canvas Engine http://canvasengine.net Description Framework to create video games in HTML5 Canvas Get Started Follow the steps below to start: Downloa

Dec 2, 2022

The (extremely) lightweight alternative to the mmenu.js plugin for creating off-canvas mobile menus.

The (extremely) lightweight alternative to the mmenu.js plugin for creating off-canvas mobile menus.

mmenu light The (extremely) lightweight alternative to the mmenu.js plugin for creating off-canvas mobile menus with the exact look and feel. Examples

Dec 12, 2022

A lib for text highlighting by using Canvas.

canvas-highlighter 基于 canvas 实现的文本划词高亮,与文本展示的结构完全解耦,不改变文本内容的 DOM 结构。 Installation npm install canvas-highlighter Usage 最简单的实现文本划词直接高亮 import CanvasHig

Dec 24, 2022

Snake game developed by Canvas & vanilla Js using OOP paradigm 🐍 🍎 🎮

Snake game developed by Canvas & vanilla Js using OOP paradigm  🐍 🍎 🎮

Snake-Game 🐍 🍎 Snake game developed by Canvas & vanilla Js using OOP paradigm This project was an exercise for the canvas fullDemo Feature Eating fo

Oct 7, 2022

👾 Simple creating cards using canvas. Welcome, Rank, Info and so on.

👾 Simple creating cards using canvas. Welcome, Rank, Info and so on.

⭐ discord-canvas-card Are you developing a bot using DiscordJS and you need beautiful images created using Canvas? You can create great welcome, goodb

Dec 18, 2022

This project is built with JavaScript, Webpack, HTML & CSS, Leaderboard api. When user clicks on Refresh button it hits the api and responds with the data, The user can also post data to the api

This project is built with JavaScript, Webpack, HTML & CSS, Leaderboard api. When user clicks on Refresh button it hits the api and responds with the data, The user can also post data to the api

leaderboad Description the project. this project is about the leaderboad i did during Microverse to build a website for adding Data to the API and fet

May 30, 2022
Comments
  • Performance

    Performance

    • [x] Análisar soluções para index buffer.
    • [ ] Análisar soluções para vertex buffer.
    • [ ] Multi-thread suporte com web workers.
    • [ ] Integração com GPU
      • [ ] gpu.js
      • [ ] Definir pipeline
    • [ ] Otimização dos métodos utilizados para processamento de matrizes.
    enhancement 
    opened by FacoBackup 0
Owner
Projection Engine
Engine desenvolvida com webGL.
Projection Engine
a 2D html canvas shooting game, implemented using vanilla JavaScript

EnemyShooting-Game a 2D single player enemy shooting game. It is an html canvas game, implemented using Vanilla JavaScript. Rules Killing each enemy w

null 3 Jun 18, 2022
The Javascript and canvas port of MarkovJunior : A Probabilistic Programming Language.

MarkovJunior.js MarkovJunior is a probabilistic programming language where programs are combinations of rewrite rules and inference is performed via c

nullday 17 Nov 15, 2022
The Easel Javascript library provides a full, hierarchical display list, a core interaction model, and helper classes to make working with the HTML5 Canvas element much easier.

EaselJS EaselJS is a library for building high-performance interactive 2D content in HTML5. It provides a feature-rich display list to allow you to ma

CreateJS 8k Dec 29, 2022
A graphical web-based audio visualizer which reads music data using Pure JavaScript, and draws a graphical view in Canvas.

Audio Visualizer JS A graphical web-based audio visualizer which reads music data using Pure JavaScript, and draws a graphical view in Canvas. Demo: h

Max Base 9 Aug 9, 2022
Happy Birthday is a web-based party live background generated by CANVAS powered by JavaScript. This show a lot of random colorize particles in the background.

Happy BirthDay JS Happy Birthday is a web-based party live background generated by CANVAS powered by JavaScript. This show a lot of random colorize pa

Max Base 9 Oct 29, 2022
Canvas-based JavaScript UI element implementing touch, keyboard, mouse and scroll wheel support.

pure-knob Initially a (circular) knob / dial control with mouse, wheel, touch and keyboard support, implemented in pure JavaScript. In addition, this

Andre Plötze 44 Nov 4, 2022
Pure JavaScript HTML5 Canvas Range Slider. No stylesheet needed. Simple, elegant and powerful. A quirky alternative to other sliders.

CanvasSlider CanvasSlider is a lightweight JavaScript range slider. Most of the range slider controls use Javascript and a stylesheet. This slider use

null 7 Aug 15, 2022
I made countdown birthday and fireworks animation using HTML Canvas, CSS, JS. The fireworks animation gonna come out once the countdown is finished or in other words, "Birthday Time".

Countdown-Birthday-Fireworks-Animation I made countdown birthday and fireworks animation using HTML Canvas, CSS, JS. The fireworks animation gonna com

Mahardika Bayu S.B 19 Dec 31, 2022
This package generates a unique ID/String for different browsers. Like chrome, Firefox and any other browsers which supports canvas and audio Fingerprinting.

Broprint.js The world's easiest, smallest and powerful visitor identifier for browsers. This package generates a unique ID/String for different browse

Rajesh Royal 68 Dec 25, 2022
Clone of the Fallout hacking mini-game, rendered into a browser canvas.

kodenkel-fo-hacking Clone of the Fallout hacking mini-game, rendered into a browser canvas. You can try it out at: https://www.kodenkel.com/games/fo-h

Gabor Major 14 Dec 19, 2022