|
|
@ -279,17 +279,31 @@ static TextureCubemap GenTextureCubemap(Shader shader, Texture2D panorama, int s |
|
|
|
|
|
|
|
rlViewport(0, 0, size, size); // Set viewport to current fbo dimensions |
|
|
|
|
|
|
|
// Activate and enable texture for drawing to cubemap faces |
|
|
|
rlActiveTextureSlot(0); |
|
|
|
rlEnableTexture(panorama.id); |
|
|
|
|
|
|
|
for (int i = 0; i < 6; i++) |
|
|
|
{ |
|
|
|
// Set the view matrix for the current cube face |
|
|
|
rlSetUniformMatrix(shader.locs[SHADER_LOC_MATRIX_VIEW], fboViews[i]); |
|
|
|
|
|
|
|
// Select the current cubemap face attachment for the fbo |
|
|
|
// WARNING: This function by default enables->attach->disables fbo!!! |
|
|
|
rlFramebufferAttach(fbo, cubemap.id, RL_ATTACHMENT_COLOR_CHANNEL0, RL_ATTACHMENT_CUBEMAP_POSITIVE_X + i, 0); |
|
|
|
|
|
|
|
rlEnableFramebuffer(fbo); |
|
|
|
rlSetTexture(panorama.id); // WARNING: It must be called after enabling current framebuffer if using internal batch system! |
|
|
|
|
|
|
|
// Load and draw a cube, it uses the current enabled texture |
|
|
|
rlClearScreenBuffers(); |
|
|
|
DrawCubeV(Vector3Zero(), Vector3One(), WHITE); |
|
|
|
rlDrawRenderBatchActive(); |
|
|
|
rlLoadDrawCube(); |
|
|
|
|
|
|
|
// ALTERNATIVE: Try to use internal batch system to draw the cube instead of rlLoadDrawCube |
|
|
|
// for some reason this method does not work, maybe due to cube triangles definition? normals pointing out? |
|
|
|
// TODO: Investigate this issue... |
|
|
|
//rlSetTexture(panorama.id); // WARNING: It must be called after enabling current framebuffer if using internal batch system! |
|
|
|
//rlClearScreenBuffers(); |
|
|
|
//DrawCubeV(Vector3Zero(), Vector3One(), WHITE); |
|
|
|
//rlDrawRenderBatchActive(); |
|
|
|
} |
|
|
|
//------------------------------------------------------------------------------------------ |
|
|
|
|
|
|
|