sonj2 / Soul-Engine

Physically based renderer and simulation engine for real-time applications.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Soul Engine

Build status Build status

What is Soul Engine?

Soul Engine is a physically based renderer and engine for real-time applications. It is cross-platform with CUDA (primary) or OpenCL (secondary) support for computation tasks.

Tree Model (This is image is produced after 5 seconds of accumulation on a consumer graphics card)

Ways to interact with Soul Engine beyond this repository are currently being investigated. For your propiertery purposes, an alternate license will be also made available once the project is near feature complete.

Check out the currently open issues for opportunities to contribute!

User (programmer) Setup

To compile within the visual studio project dependancies with the following must be met:

Soul Engine can be compiled in Microsoft Visual Studio 2015.

Example Usage


#include "SoulCore.h"

int main()
{
	SoulInit();

	EventManager::Listen("Input", "ESCAPE", [](keyState state) {
		if (state == RELEASE) {
			SoulSignalClose();
		}
	});

	//create a Window
	GLFWwindow* win=SoulCreateWindow(0, 0.95f, 0.95f);

	Material* whiteGray = new Material();
	whiteGray->diffuse = glm::vec4(1.0f, 0.3f, 0.3f, 1.0f);
	whiteGray->emit = glm::vec4(0.0f, 0.0f, 0.0f, 1.0f);

	Scene* scene = new Scene();
	AddObject(scene, glm::vec3(0, 0, 0), "Rebellion.obj", whiteGray);

	SubmitScene(scene);

	SoulRun();

	return 0;
}

The documentation Wiki for Soul Engine can be found here.

About

Physically based renderer and simulation engine for real-time applications.

License:GNU General Public License v3.0


Languages

Language:C++ 74.6%Language:Cuda 23.8%Language:C 0.6%Language:Objective-C 0.6%Language:GLSL 0.3%Language:CMake 0.1%Language:Batchfile 0.0%Language:Common Lisp 0.0%