Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // depth cube map
- glGenTextures(1, &tDepthCubeMap);
- glBindTexture(GL_TEXTURE_CUBE_MAP, tDepthCubeMap);
- glTexParameterf(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
- glTexParameterf(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
- glTexParameterf(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
- glTexParameterf(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
- glTexParameterf(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_R, GL_CLAMP_TO_EDGE);
- for (uint face = 0; face < 6; face++) {
- glTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X + face, 0, GL_DEPTH_COMPONENT24,
- width, height, 0, GL_DEPTH_COMPONENT, GL_FLOAT, null);
- }
- // color cube map
- glGenTextures(1, &tColorCubeMap);
- glBindTexture(GL_TEXTURE_CUBE_MAP, tColorCubeMap);
- glTexParameterf(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
- glTexParameterf(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
- glTexParameterf(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
- glTexParameterf(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
- glTexParameterf(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_R, GL_CLAMP_TO_EDGE);
- for (uint face = 0; face < 6; face++) {
- glTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X + face, 0, GL_RGBA,
- width, height, 0, GL_RGBA, GL_FLOAT, null);
- }
- // framebuffer object
- glGenFramebuffersEXT(1, &fbo);
- glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, fbo);
- glFramebufferTextureARB(GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT_EXT, tDepthCubeMap, 0);
- glFramebufferTextureARB(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, tColorCubeMap, 0);
- glDrawBuffer(GL_COLOR_ATTACHMENT0_EXT);
- if (!isValidFBO()) {
- glDeleteFramebuffersEXT(1, &fbo);
- fbo = 0;
- }
- #version 120
- #extension GL_EXT_geometry_shader4 : enable
- void main(void) {
- int i, layer;
- for (layer = 0; layer < 6; layer++) {
- gl_Layer = layer;
- for (i = 0; i < 3; i++) {
- gl_Position = gl_PositionIn[i];
- EmitVertex();
- }
- EndPrimitive();
- }
- }
Add Comment
Please, Sign In to add comment