Tiny3DTop

My humble attempt to create a minimal 3D rendering engine. It is only targeting Windows and D3D11 (atm).

This is a work in progress, and doesn’t do anything useful yet.

UsageTop

#include "Tiny3DAll.h"

using namespace Tiny3D;

int APIENTRY wWinMain(_In_    HINSTANCE hInstance,
                     _In_opt_ HINSTANCE hPrevInstance,
                     _In_     LPWSTR    lpCmdLine,
                     _In_     int       nCmdShow)
{
    UNREFERENCED_PARAMETER(hPrevInstance);
    UNREFERENCED_PARAMETER(lpCmdLine);
    UNREFERENCED_PARAMETER(nCmdShow);

    Application app(hInstance);
    // Set parameters before Application::Initialize();
    app.parameters_.vSync = true;
    if (SUCCEEDED(app.Initialize()))
    {
        std::shared_ptr<Scene> scene = std::make_shared<Scene>(Scene());
        std::shared_ptr<Camera> camera = std::make_shared<Camera>(Camera());
        camera->position_ = Math::Vector3(0, 0, -10);

        scene->Add(camera);

        scene->SetCamera(camera);
        app.SetScene(scene);

        // Calls: (1) Application::Starting(), (2) Message pump, (3) Application::Ending()
        app.Run();

        return EXIT_SUCCESS;
    }
    return EXIT_FAILURE;
}

RequirementsTop

Third partyTop

BuildingTop

  1. Build pugixml as static library and copy the .lib file to ./lib/x64/Debug|Release.
  2. Assimp: 1. Download Assimp and put it in the ThirdParty/assimp folder. 2. Build Assimp as static library and copy zlibstatic(d).lib and assimp-vc140-mt.lib to ./lib/x64/Debug|Release.
  3. Download stb and put it in the ThirdParty/stb folder.
  4. Open Tiny3D.sln and compile it from the IDE.

TodoTop

Must haveTop

  1. Working transparency
  2. Shadow mapping

Nice to haveTop

Design goalsTop

LimitsTop

This is not a Game engine, therefore it lacks:

However, at the moment it also lacks almost everything a 3D Rendering engine has, I just started with it.

Inspirations/CreditsTop

OuchTop

I thought this would be easier. We have already over 100 source files (okay, maybe 60 without header files). Is this all really needed to get an API to do what it’s supposed to do?

ScreenshotsTop

Not much is workingTop

Textures still not workingTop

That’s a problem of the house model, it is rendered correctlyTop

At least some textures are working nowTop

Fixed textures, added transparencyTop

It was just an unsupported PNG file format.

LinksTop