A 3D Rendering Engine

IverMartinson fac20f56f2 updated todo list 10 months ago
.vscode c15148cb39 added object rendering (some errors with mesh corruption) 11 months ago
builds 95f259cd66 added texture support! 10 months ago
objects 95f259cd66 added texture support! 10 months ago
src 95f259cd66 added texture support! 10 months ago
textures 95f259cd66 added texture support! 10 months ago
.gitignore de55870f6e added readme & gitignore 11 months ago
Makefile 57f830aa7f really strange visual bug, looks cool 10 months ago
build 5e7402cb52 added helper scripts 10 months ago
dbg af060b7ad5 added obj parser and basic object functions/variables 11 months ago
push bdc35eadbc removed filetype of push.sh 11 months ago
readme.md fac20f56f2 updated todo list 10 months ago
run af060b7ad5 added obj parser and basic object functions/variables 11 months ago
stat c70e598be4 cleaned up some code 11 months ago
todo 5e7402cb52 added helper scripts 10 months ago

readme.md

RasterIver, a GPU Accelerated Rendering Engine

RasterIver?

Rasterizer + Iver = RasterIver

Requirements

To Run

  • SDL2
  • SDL2 TTF
  • OpenCL Runtimes

    To Build

  • SDL2

  • SDL2 TTF

  • OpenCL Developer Libraries

  • ROCm if using AMD

  • CUDA if using NVIDIA

Todo

  • make todo list
  • function to request a mesh. I.E., request a number of polygons/verticies (maybe from presets? planes, cubes, idk) and be able to edit them on the fly. Useful for dynamic terrain or something like that
  • texture support
  • fix interpolation issue with UV maps (and probably normals and Z values too)
  • fix horribly named variables in request object functions
  • include rasteriver.h in the kernels for better code updatability
  • make kernels not be in strings (read the file at compile time and put it inside rasteriver.c as a string? put it in a header like how it is now?)
  • change all iterator variables in for loops to have "i_" before it's variable name
  • descriptions RI functions
  • a function call stack to review where errors happen or just debug stuff
  • optimize object memory usage by not loading object data multiple times when the same object is requested
  • checks for invalid/nonexistant files
  • perspective
  • object transforms (rotation mainly. Might add fancy stuff like sheer)