📖
Wiki
  • 👋Welcome to 3D Engine
  • README
  • Overview
    • ⭐What's special?
    • 🏁Upcoming Features
    • 📈How to Setup
  • Guide
    • 💡Understanding this Project
  • Fundamentals
    • ⚙️Getting set up
      • 📝Setting permissions
      • 🧑Inviting Members
  • Editor
    • App
      • Main Window
    • MVC
      • Frames
        • Home
        • Wiki
        • Main
        • Settings
      • User Controls
        • Files
        • Hierarchy
        • Output
        • Properties
        • Viewport
    • Helper
      • Extension Methods
  • Engine
    • Program
      • AppWindow
      • Framework
        • Kernel32
        • User32
        • Win32Window
    • Core
      • Utilities
        • Input
        • Output
        • Profiler
        • Time
      • Scene System
        • ECS
          • Entity
          • Component
          • System
        • Entity Manager
        • Scene Manager
        • Scene
      • Resources
      • Rendering
        • Buffer
          • Camera Buffer
          • Material Buffer
          • Mesh Buffer
        • Data
          • Config
          • Constant Buffer
          • Mesh Info
          • Render Data
        • Gui
          • ImGui Input Handler
          • ImGui Renderer
          • ImGuizmo Renderer
          • ImNodes Renderer
          • ImPlot Renderer
        • Material
        • Renderer
      • Helper
        • Event List
        • Paths
        • Serialization
        • Extension Methods
      • Editor
        • Attributes
        • Editor State
      • Components
        • Camera
        • Mesh
        • Transform
        • Editor Components
          • Default Sky
          • Scene Boot
          • Viewport Controller
  • Use Cases
    • 🎨For Designers
    • 🖥️For Developers
  • Privacy Policy
Powered by GitBook
On this page
  • 3D Engine Class Diagram
  • Solution
  • NuGet Package
  1. Guide

Understanding this Project

PreviousHow to SetupNextGetting set up

Last updated 1 year ago

3D Engine Class Diagram

Solution

The 3D Engine contains three Projects:

  • 3DEngine (Package)

  • Editor

  • Engine

You can compile the 3DEngine (Package) for the Editor and the Engine as a standalone.

NuGet Package

You can also only get the Engine with the NuGet Package Manager and create applications using the 3DEngine (w/o Editor) in a new project and implement all features via code.

dotnet new console -n Project
cd Project
dotnet add package 3DEngine
dotnet add package Costura.Fody

Engine usage:

sealed class Program
{
    [STAThread]
    private static void Main() =>
        new Engine.Program().Run(true);
}

Use the Engine Core to get to the Scene System.

Project Setup:

<Project Sdk="Microsoft.NET.Sdk">

	<PropertyGroup>
		<OutputType>WinExe</OutputType>
		<TargetFramework>net7.0-windows10.0.19041.0</TargetFramework>
		<ImplicitUsings>enable</ImplicitUsings>
		<Nullable>enable</Nullable>
		<SatelliteResourceLanguages>en</SatelliteResourceLanguages>
		<PlatformTarget>x64</PlatformTarget>
		<PublishAot>true</PublishAot>
		<ImplicitUsings>enable</ImplicitUsings>
	</PropertyGroup>

	<ItemGroup>
	  <None Remove="FodyWeavers.xml" />
	</ItemGroup>

	<ItemGroup>
		<PackageReference Include="3DEngine" Version="1.0.1" />
		<PackageReference Include="Costura.Fody" Version="5.7.0">
		  <PrivateAssets>all</PrivateAssets>
		</PackageReference>
	</ItemGroup>

</Project>

Also set the Files inside the Assets Folder to "CopyIfNewer" in the Properties Panel inside Visual Studio, so it is included in the Build Folder. This will be obsolete in the Future by the USD Format.

💡
Core
3D Engine Class Diagram