Giter Club home page Giter Club logo

fostomengine's Introduction

FostomEngine

Voxel based game engine written in D2 programming language. Voxel engines became actual when graphics card were able to excecute generic code (CUDA and OpenCL). At this moment there are some experimental developments: Atomontage Engine, Gigavoxels, Procedural Worlds. But all of them are closed or unrelased.

This engine based on Gigavoxel technology described in this paper. The article can be seen as disign document and road map for the project.

Compilation

Engine uses dub for building. There are two main build configurations: Client:

dub build --config=client

Server:

dub build --config=server

Dependencies

There are some third party libraries that cannot be build through dub. You should douwnload binary distribution or compile them by yourself and then put into bin folder:

Also your system should support at least OpenGL 3.0 and OpenCL 1.2. You can face into some linking problems in GNU/Linux platform, that could be fixed by creating symbolic links for libOpenCL.so and other dependencies in /usr/lib.

Milestones

  • Creating base polygon engine. (DONE)
  • Creating wrapper for OpenCL renderer. (DONE)
  • Rendering a single voxel. (DONE)
  • Rendering voxel brick. (DONE)
  • Rendering simple octree. (In progress)
  • Rendering complex octree.
  • Creating GPU cache system.
  • Rendering multiple octrees.
  • Creating polygon to octree convertor.

Screenshots

First voxel brick

fostomengine's People

Stargazers

maaz avatar Андреев Кирилл avatar  avatar  avatar Vuthea Chheang avatar VirtualPierogi avatar Whoemoon Jang avatar  avatar  avatar  avatar Hans Meyer avatar  avatar 野生の男 avatar

Watchers

 avatar James Cloos avatar 野生の男 avatar Anton Gushcha avatar  avatar

fostomengine's Issues

Resizing bug

Application crushes when resizing window:

opencl.error.CLInvalidCommandQueueException@.\opencl\commandqueue.d(93): 
----------------
0x0050F7FC in char[][] core.sys.windows.stacktrace.StackTrace.trace()
0x0050F687 in core.sys.windows.stacktrace.StackTrace core.sys.windows.stacktrace.StackTrace.__ctor()
0x004C6825 in void opencl.commandqueue.CLCommandQueue.finish()
0x0040E31D in void client.rendersys.RenderSystem.drawScene(client.camera.Camera) at D:\dev\FostomEngine\scripts\..\src\client\rendersys.d(226)
0x004034F0 in void client.app.App.startLooping() at D:\dev\FostomEngine\scripts\..\src\client\app.d(76)
0x0040A3EA in _Dmain at D:\dev\FostomEngine\scripts\..\src\client\main.d(20)
0x004E3804 in extern (C) int rt.dmain2._d_run_main(int, char**, extern (C) int function(char[][])*).void runMain()
0x004E383A in extern (C) int rt.dmain2._d_run_main(int, char**, extern (C) int function(char[][])*).void runAll()
0x004E343D in _d_run_main
0x004D5BEC in main
0x76F03677 in BaseThreadInitThunk
0x777D9D72 in RtlInitializeExceptionChain
0x777D9D45 in RtlInitializeExceptionChain
----------------

OpenCL dynamic bindings

Static linking to opencl inaccessible due to lack of static opencl libriaries at linux. Task is write Derelict module for OpenCL based on cl4d static bindings.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.