Skip to content

Simple engine/algorithm for the TI-84 Plus CE to render voxels dynamically. May be used in the future for Temple Run or another MC clone!

Notifications You must be signed in to change notification settings

Kasherpete/wireframe-engine-ce

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Overview

This is just a simple algorithm for the TI-84+ CE to render simple voxels quickly and dynamically. For now it is just an engine/algorithm, but once it is in a ready stage, it will be used to make a couple games.

gif image

Setup

In main.c, you will find some #define's at the top. Just configure them to your needs. If you change any of the Z render distances or FOV, make sure to run powAZx50 found in /utils. This script pre-calculates any needed values. If you change anything regarding the Z render distance, FOV, or powAZx50 variables within main.c, make sure to double check the Python script since it automatically handles constants in main.c.

TODO

  • Add functionality to render planes and polygons
  • Darken colors for the further away from the camera it is (volumetric fog)
  • Optimize algorithm (sacrifice of accuracy is acceptable, and may make the scene loop less calculated and and definitive - more natural)
  • Clipping alorithm for panels
  • Add drawPlane()
  • Look into smoother movements (I'll see what I can do. Right now this is the most important thing.)
  • Render polygon instead of lines for panel, plane
  • Make variables into constants
  • Add drawPillar()
  • Direction control
  • Write custom drawing routine for trapezoids
  • Time delta for player movement
  • Implement clipping detection for planes
  • Add render distance detection for planes
  • Add rotation control for planes
  • Set palette to remove compiler warnings
  • Find a way to render everything unclipped (will need help!!)
  • Check if cache really helps performance
  • Add common voxel coordinate lookup table to optimize rendering
  • Render screen coordinates using 8 bit values instead of 16 - will allow the right side of the screen to be used for stats

  • Unplanned: Implement a lookup table for both powAZx50 variables - which are calculated every voxel

Changelog

v0.2.7 - Added DrawBasePlane, multiple bug fixes, small optimizations, and code changes

v0.2.6 - Fully implement planes, optimize existing algorithms, updated trapezoid routine, other small changes

v0.2.5 - Fix clipping algorithm, improve powAZx50.py script, fix render algorithm, add coordinate view, add basic drawPlane() function - only able to lay flat.

  • Note: v0.2.4 was skipped...I did a funny and accidentally labelled it as v0.2.5.

v0.2.3 - Add fully functioning sortCoordinateList() method, optimize filling algorithm, add functionality for drawing only visible parts of an object.

v0.2.2 - Code cleanup, remove excess code, optimizations, removed vertex cache, currently the fastest version.

v0.2.1 - Added cache for common vertices. May be slower? We'll see, for now the cache is set to 1.

v0.2.0 - Massive speed boost, over 6x speed

v0.1.0 - First demo

About

Simple engine/algorithm for the TI-84 Plus CE to render voxels dynamically. May be used in the future for Temple Run or another MC clone!

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published