Brahma is a 3D game engine with a rather retrofuturistic design, intended for small studios and solo developers. It's being written from scratch in C++ using standard Windows API and no third-party libraries. This technology introduces an entirely new class of low-latency real-time engines that make special timing requirements, treating frames as video fields with a target time budget of 2-4 ms each, down from 16-33 ms frame budgets normally seen in game engines. It evolves in a different way than other modern engines, rejecting conventional BSP, Z-buffer, floating-point coordinates, and most of the lame screen-space effects in favor of innovative and efficient techniques. The engine is non-Euclidean capable to some degree; also it supports true displacement mapping for sectors as a means to virtualize geometry that affects collisions. The engine is also carefully designed to be easy and convenient to develop for, yet versatile and adaptive to any needs.

  • View media
  • View media
  • View media
  • View media
  • View media
  • View media
Add media Report RSS Custom rasterizer for 3D models (WIP)
Post a comment

Your comment will be anonymous unless you join the community. Or sign in with your social account:

Description

This video shows the current progress of a custom geometry rasterizer I'm doing for my Brahma engine, demonstrating its unique features. It also reveals some issues I'll need to address later. The rasterizer is being implemented in software and uses my "polyscan" algorithm that works in 3D edge domain, so it can draw arbitrary N-gons with up to 255 sides and vertices lying outside the viewing frustum, doing this without any triangulation. It doesn't require near plane clipping either. The clipping artifacts in the corners are caused by imperfect scene occlusion calculations (not the rasterizer itself), as its clipping is limited to a rectangular window at the moment. The algorithm is subject to be further elaborated and evolve in its own way.

The scene consists of some models I found on Sketchfab (I'm using those only for test purposes). The bench was done for a previous project specifically for this engine. It exploits its capability to handle complex concave polygons in a great way. The voxels were drawn by me. Another location showcases spherical environment mapping of a globe.