class RenderService : Service { EntityEnvir nment env; SceneCamera sceneCamera; MeshComponent meshC; Entity child; void init() { env = Resource::createLoadEntityEnvironment("PreviewerEnv"); child = env.getRootEntity().createChild("Render"); meshC = child.createMeshComponent(); ShaderComponent shaderC = child.createShaderComponent(); shaderC.shader = Resource::loadShader("shader.glsl"); sceneCamera.transform.position.z = -3; sceneCamera.transform.position.y = 1; } [Expose] FrameBuffer renderMeshPreview(GPUMesh mesh) { FrameBuffer buffer = Resource::createLoadRGBA8FrameBuffer(mesh.path, 128, 128, 4); buffer.clearRGBA(0, 0, 0, 0); meshC.meshResource = mesh; child.transform.rotation = vec3(0, 0, 0); env.render(buffer, sceneCamera); return buffer; } [Expose] FrameBuffer renderMeshPreview_fase(GPUMesh mesh, float fase) { FrameBuffer buffer = Resource::createLoadRGBA8FrameBuffer(mesh.path, 128, 128, 4); buffer.clearRGBA(0, 0, 0, 0); meshC.meshResource = mesh; child.transform.rotation = vec3(0, (1-(1/(1+fase * fase)))*45, 0); env.render(buffer, sceneCamera); return buffer; } }