Skip to content
Timo Wiren edited this page Sep 23, 2017 · 26 revisions

Aether3D Game Engine

This is a reboot of Aether3D game engine. API Documentation: http://twiren.kapsi.fi/doc_v0.7/html/

Importing meshes

There is a converter for FBX and OBJ meshes in Tools. Once they have been built, they can be used in command line like follows:

convert_obj 0 mesh.obj produces mesh.ae3d with vertex format containing a position, texcoord, normal, tangent and color.

convert_obj 1 mesh.obj produces mesh.ae3d with vertex format containing a position, texcoord and normal.

Blender exporter is in Tools/io_export_aether3d.py. Install it into Blender and it's in export menu.

Animation

Aether3D supports skinned animation from .fbx files. It's sampled at 24 FPS.

Loading shaders

Shader shader;

shader.Load( FileSystem::FileContents( "unlit.vsh" ), FileSystem::FileContents( "unlit.fsh" ), "unlitVert", "unlitFrag", FileSystem::FileContents("unlit.hlsl"), FileSystem::FileContents( "unlit.hlsl" ), FileSystem::FileContents("unlit_vert.spv"), FileSystem::FileContents("unlit_frag.spv") );

Shader source code is loaded from file system objects that can be filled from files, .pak files or data. Because the renderer supports OpenGL, Vulkan, Metal and D3D12, there are parameters for all shading languages. If you don't want to support a particular language, just provide an empty string for FileContents. In case of Metal, shaders should be put into your Xcode project and Shader::Load is given a vertex and fragment shader's name.

Clone this wiki locally