Kotlin Multiplatform 3D graphics rendering engine based on OpenGL / OpenGL ES
@Composable
fun App() = Korender {
Frame {
Renderable(
mesh = sphere(2.0f),
material = standard(StandardMaterialOption.Color) {
color = Color(0.2f, 1.0f, 0.5f + 0.5f * sin(frameInfo.time))
},
transform = Transform().translate(sin(frameInfo.time).y)
)
}
}
- Desktop (Windows) - based on LWJGL
- Android - based on OpenGL ES
- Rendering opaque and transparent objects
- Diffuse, specular and ambient lighting (direction light)
- Projection shadow maps with percentage close soft shadows
- Texturing:
- uv mapped
- triplanar
- detail
- Bump mapping
- Custom meshes
- Wavefront .obj model file loading
- Billboards (sprites)
- Batching (instancing)
- Simple heightfield (terrain)
- Textured or shader sky
- On-screen basic GUI
- Custom shaders support
- Screen-space shaders (filters)
- Simple effects
- smoke
- fire
- water
- JVM Desktop Windows: https://github.com/zakgof/korender/releases/download/0.0.3/korender-demo-0.0.3.apk
- Android APK: https://github.com/zakgof/korender/releases/download/0.0.3/korender-demo-0.0.3.apk
- KorenderContext - your entry point to access engine features
- Renderable - a primitive that can be rendered. A renderable's has a Mesh (geometry) and a Material (surface properties)
- Mesh - is generally an indexed collection of vertices that form triangles. Each vertex has a set of Attributes, such as position, normal, texture coordinates, etc.
- Material - defines a renderable's surface look; consist of a Shader and its Uniforms (properties)
- Shader - compiled GPU program, consisting of vertex ang fragment shader code
- Uniforms - shader's parameters