45 lines
1.3 KiB
ActionScript

class RenderService : Service {
EntityEnvironment env;
WorldCamera 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;
}
}