Skip to content

Novolis-Platform/novolis-rendering

Repository files navigation

GitHub Packages shows this repository README on every package page (upstream limitation). Open the package README for install and quick start — embedded in each .nupkg and linked below.

Published packages

Package Install Package README
Novolis.Rendering dotnet add package Novolis.Rendering README
Novolis.Rendering.Abstractions dotnet add package Novolis.Rendering.Abstractions README
Novolis.Rendering.Backends.Cpu dotnet add package Novolis.Rendering.Backends.Cpu README
Novolis.Rendering.Backends.Igpu dotnet add package Novolis.Rendering.Backends.Igpu README
Novolis.Rendering.Backends.Vulkan dotnet add package Novolis.Rendering.Backends.Vulkan README
Novolis.Rendering.Compile dotnet add package Novolis.Rendering.Compile README
Novolis.Rendering.DependencyInjection dotnet add package Novolis.Rendering.DependencyInjection README
Novolis.Rendering.Materials dotnet add package Novolis.Rendering.Materials README
Novolis.Rendering.PathTrace.Demos dotnet add package Novolis.Rendering.PathTrace.Demos README
Novolis.Rendering.Presentation.Abstractions dotnet add package Novolis.Rendering.Presentation.Abstractions README
Novolis.Rendering.Presentation.Raylib dotnet add package Novolis.Rendering.Presentation.Raylib README
Novolis.Rendering.Presentation.Silk dotnet add package Novolis.Rendering.Presentation.Silk README
Novolis.Rendering.Runtime dotnet add package Novolis.Rendering.Runtime README
Novolis.Rendering.Scene dotnet add package Novolis.Rendering.Scene README
Novolis.Rendering.Testing dotnet add package Novolis.Rendering.Testing README

For NuGet.org and Visual Studio, the embedded README.md inside each package is authoritative.

novolis-rendering

Graphics-host-neutral ray tracing — authoring, compilation, CPU/GPU backends, and framebuffer contracts. Computes RGBA frames; does not own windows, GPU draw calls, or input.

Display adapters (Novolis.Rendering.Presentation.Raylib, Novolis.Rendering.Presentation.Silk, …) live in this repo and reference host runtimes only. See library boundaries.

Pipeline

Scene + IMaterial  →  SceneCompiler  →  CompiledScene
  →  IRayTracingBackend  →  IRenderOutput (CPU pixels)
  →  IFramePresenter (Presentation.Raylib / Presentation.Silk)

Packages

Package Role
Novolis.Rendering.Abstractions Legacy bootstrap types (obsolete); shared primitives
Novolis.Rendering.Presentation.Abstractions IFramePresenter, IRenderOutput
Novolis.Rendering.Materials IMaterial, presets, MaterialCompilerGpuMaterial
Novolis.Rendering.Scene Authoring Scene, MeshInstance, lights
Novolis.Rendering.Compile SceneCompiler + BVH build
Novolis.Rendering.Runtime CompiledScene, CameraSnapshot, IRayTracingBackend
Novolis.Rendering.Backends.Cpu CPU path tracer (progressive accumulation)
Novolis.Rendering.Backends.Igpu ILGPU GPU path tracer (CPU fallback when no GPU or deterministic: true)
Novolis.Rendering.Backends.Vulkan Vulkan compute path tracing (SPIR-V)
Novolis.Rendering.DependencyInjection AddRayTracing(), UseCpuBackend()
Novolis.Rendering.Presentation.Silk Silk.NET window + OpenGL CPU presenter
Novolis.Rendering.Presentation.Raylib Raylib CPU frame presenter
Novolis.Rendering Meta package referencing the stack

Normative API: docs/materials-and-backends.md. Roadmap: docs/roadmap-raytracing.md.

Build

cd d:\novolis\novolis-math
.\scripts\pack-local.ps1
cd d:\novolis\novolis-rendering
.\scripts\ci-pack-dependencies.ps1   # or pack-local.ps1 for full stack
dotnet build Novolis.Rendering.slnx -c Release
dotnet run --project tests/Novolis.Rendering.Backends.Cpu.Tests -c Release

CI checks out novolis-math and runs scripts/ci-pack-dependencies.ps1 before restore.

Compose with Raylib (app layer)

services.AddRayTracing().UseIlgpuBackend();
services.AddSingleton<IFramePresenter, RaylibCpuFramePresenter>();

var backend = provider.GetRequiredService<IRayTracingBackend>();
var presenter = provider.GetRequiredService<IFramePresenter>();
await backend.UploadSceneAsync(SceneCompiler.Compile(scene));
await backend.RenderAsync(camera, sampleIndex);
if (backend.Output.TryGetCpuPixels(out var pixels, out var w, out var h))
    presenter.PresentCpuFrame(pixels, w, h);

Dogfood sample: novolis-dogfooding/apps/RaytraceHello.

Policy

  • No reference to Novolis.Raylib.* or Novolis.Simulation.* from core rendering packages (Scene, Compile, backends).
  • Novolis.Rendering.Presentation.Raylib is the only rendering package that references Novolis.Raylib.Runtime (texture blit only).
  • novolis-raylib is a pure Raylib host — no Novolis.Rendering.* references.

Repository: github.com/Novolis-Platform/novolis-rendering

About

No description, website, or topics provided.

Resources

License

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors