j
jaipkg.dev
packages / library / Untitled

Untitled

0cc57a2library

No description provided.

No license ยท updated 12 months ago

Untitled

๐Ÿšง This is a learning-focused renderer under construction โ€” built with love and low-level code.

Yet another renderer engine without title. This built from the ground up using DirectX 11 and JAI โ€” focused on lighting, performance, and GPU-driven workflows. This project serves as a personal exploration of engine architecture, graphics programming, and system-level design without relying on third-party game engines.

โœจ Features

  • ๐Ÿงต glTF Model Viewer
    • Loads static glTF/glb files (geometry data)
    • Custom vertex layout and GPU upload pipeline
  • ๐Ÿ’ก Forward Lighting Pass
    • Directional light with Blinn-Phong highlights
    • Hemispheric ambient light (simple ambient approximation)
    • Per-material lighting logic in HLSL
  • ๐Ÿงฐ 2D Sprite Batching
    • Dynamic batching system using indexed quads
    • Ideal for UI overlays or debug rendering
  • ๐ŸŽจ Material System
    • GPU-side StructuredBuffer<Material> with ID-based lookup
    • Per-object constant buffer contains material index and transform
  • โš™๏ธ DirectX 11 Backend
    • Manually managed device, states, buffers, and draw calls
    • Shader-driven rendering with clean buffer separation

๐Ÿšง Work in Progress

This project is not yet real-time or optimized. It's a renderer under active development, intended to test core features and rendering workflows.

Current focus areas:

  • Building a simple scene/instance system
  • Improving GPU material lookup and buffer management
  • Adding debug overlays and shader hot-reloading (planned)

๐Ÿ’ผ About the Developer

I'm an aspiring graphics programmer focused on understanding the low-level foundations of rendering engines. This project reflects my hands-on approach to learning modern GPU pipelines, lighting models, and rendering techniques from scratch.

๐Ÿ”ง Tech Stack

  • Language: Jai
  • Graphics API: DirectX 11
  • Shader Language: HLSL
  • Rendering: Forward pass with lighting
  • Model Format: glTF 2.0 (geometry/material only)

๐Ÿ“Œ Goals

  • Build a functional forward rendering/ deferred rendering pipeline
  • Showcase lighting and structured GPU material design
  • Prepare a foundation for real-time rendering in the future

๐Ÿ› ๏ธ How to Build

โœ… Requirements

  • Jai compiler (private beta)
  • Windows OS with DirectX 11.1
  • GPU supporting Direct3D Feature Level 11_0 or higher
  • Terminal or shell that supports running jai commands

๐Ÿงฑ Build Instructions

  1. Install the Jai compiler

    • This project requires the Jai language compiler, which is currently in closed early access.
  2. Open a terminal in the project directory

  3. Generate Bindings for ImGui

    • This project uses Dear ImGui as the UI layer. You'll need to generate static bindings before building the engine.
    • Navigate to the ImGui vendor folder:
      cd vendor/imgui
    • Run the following Jai commands:
      jai generate.jai -- -compile
      jai generate.jai -- -backend_d3d11
    • This will generate the necessary static library and backend-specific bindings for DirectX 11.
  4. Compile the project

    jai first.jai