GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - graphnode/r3d-cs: The C# port of an advanced 3D rendering library built on top of raylib.

BranchesTags
Open more actions menu

Latest commit

 

History

25 Commits
25 Commits

Folders and files

NameName
Last commit message
Last commit date
.github/workflows
.github/workflows
 
 
Examples
Examples
 
 
External
External
 
 
R3D-cs.GenerateBindings
R3D-cs.GenerateBindings
 
 
R3D-cs
R3D-cs
 
 
scripts
scripts
 
 
.editorconfig
.editorconfig
 
 
.gitattributes
.gitattributes
 
 
.gitignore
.gitignore
 
 
.gitmodules
.gitmodules
 
 
CLAUDE.md
CLAUDE.md
 
 
LICENSE
LICENSE
 
 
R3D-cs.sln
R3D-cs.sln
 
 
README.md
README.md
 
 

Repository files navigation

R3D-cs Logo

R3D-cs

CI NuGet NuGet Downloads

.NET/C# bindings for r3d, an advanced 3D rendering library built on top of raylib.

Experimental: This package is in early development. APIs may change between versions.

Note: r3d itself is under heavy development and has not reached version 1.0. Expect breaking changes in the underlying library as well.

Important: For now this package includes its own raylib.dll from r3d with some features enabled (like HDR file loading). This will overwrite the native library provided by raylib-cs.

Installation - NuGet (Easy mode)

dotnet add package R3D-cs --prerelease

Installation - Manual (Hard mode)

  1. Clone the repo with submodules:
    git clone --recursive https://github.com/graphnode/r3d-cs.git
    
  2. Add the R3D-cs project to your solution as an existing project.
  3. Build the native libraries from the External/r3d submodule (see Building) and copy them to R3D-cs/runtimes/<rid>/native/.

Requirements

  • .NET 10.0 or later (might work with earlier versions but not tested)
  • Raylib-cs (included as a dependency)
  • Native r3d library for your platform (included in package)

Quick Start

using System.Numerics;
using Raylib_cs;
using R3D_cs;

// Initialize window
Raylib.InitWindow(800, 450, "[r3d] - Basic example");
Raylib.SetTargetFPS(60);

// Initialize R3D
R3D.Init(Raylib.GetScreenWidth(), Raylib.GetScreenHeight());

// Create meshes
var plane = R3D.GenMeshPlane(1000, 1000, 1, 1);
var sphere = R3D.GenMeshSphere(0.5f, 64, 64);
var material = R3D.GetDefaultMaterial();

// Setup environment
var env = R3D.GetEnvironmentEx();
env.Ambient.Color = new Color(10, 10, 10, 255);
R3D.SetEnvironmentEx(env);

// Create light
Light light = R3D.CreateLight(LightType.Spot);
R3D.LightLookAt(light, new Vector3(0, 10, 5), Vector3.Zero);
R3D.EnableShadow(light);
R3D.SetLightActive(light, true);

// Setup camera
var camera = new Camera3D() {
    Position = new Vector3(0, 2, 2),
    Target = Vector3.Zero,
    Up = new Vector3(0, 1, 0),
    FovY = 60
};

// Main loop
while (!Raylib.WindowShouldClose())
{
    Raylib.UpdateCamera(ref camera, CameraMode.Orbital);

    Raylib.BeginDrawing();
        Raylib.ClearBackground(Color.RayWhite);

        R3D.Begin(camera);
            R3D.DrawMesh(plane, material, new Vector3(0, -0.5f, 0), 1.0f);
            R3D.DrawMesh(sphere, material, Vector3.Zero, 1.0f);
        R3D.End();
    Raylib.EndDrawing();
}

// Cleanup
R3D.UnloadMesh(sphere);
R3D.UnloadMesh(plane);
R3D.Close();

Raylib.CloseWindow();

Alternatives

  • R3d.Net - .NET bindings for r3d by Kiriller12

Documentation

  • r3d documentation
  • raylib-cs documentation

Building

dotnet build R3D-cs.sln

Updating r3d upstream

The r3d source is included as a git submodule at External/r3d. To update to a newer version:

cd External/r3d
git fetch origin
git checkout <new-tag-or-commit>   # e.g. git checkout v0.9
cd ../..
git add External/r3d

After updating, regenerate the bindings and rebuild the native libraries:

# Regenerate C# bindings
cd R3D-cs.GenerateBindings
dotnet run

# Build native libraries for local testing
cd ../External/r3d
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON \
      -DR3D_ASSIMP_VENDORED=ON -DR3D_RAYLIB_VENDORED=ON
cmake --build build --config Release

Contributing

Feel free to open an issue. If you'd like to contribute, please fork the repository and make changes as you'd like. Pull requests are welcome.

License

This project is licensed under the zlib license. See r3d for the original library license.

Acknowledgements

We're grateful to the raylib, r3d, raylib-cs, and r3d-net developers for their outstanding contributions to the raylib community. This project's structure, documentation, and packaging are all inspired by their excellent work.

About

The C# port of an advanced 3D rendering library built on top of raylib.

Topics

3dcsharpgamedevr3draylibraylib-cs

Resources

Readme
Zlib license
Activity

Stars

20 stars

Watchers

1 watching

Forks

1 fork
Report repository

Releases

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.