Jump to content
  • Advertisement

W.k Seah

Member
  • Content Count

    8
  • Joined

  • Last visited

Community Reputation

120 Neutral

About W.k Seah

  • Rank
    Newbie
  1. Yea.. Just trying something out and see if things turn out more opac but it didn't
  2. Hello.. I am new to OpenGLES and my question is how do I render multiple transparent object? I am drawing things in 2D using xy-plane. The problem that I am facing is the more object I render, the less opacity it have. Here's my openGLES set up:   // Enable texture mapping.     glEnable(GL_TEXTURE_2D);     // Enable smooth shading.     glShadeModel(GL_SMOOTH);     // Set the depth value used when clearing the depth buffer.     glClearDepthf(1.0f);     // Enable Blend.     glEnable(GL_BLEND);     // Set the type of depth test.     //glDepthFunc(GL_LEQUAL);     // Use the best perspective correction method.     glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); Here's my draw call assuming all texture have full opacity: GLuint tex = GraMgr.RetrieveTexture(R_BOX_TEXTURE); // Array used for object coordinates. GLfloat vcoords[4][3]; // Array used for texture coordinates. GLfloat tcoords[4][2]; // Array used to convert from QUAD to TRIANGLE_STRIP. // QUAD is not available on the OpenGL implementation // we are using. GLubyte indices[4] = {0, 1, 3, 2}; // Set the background color to be used when clearing the screen. glClearColor(0.0f, 0.0f, 0.0f, 1.0f); // Clear the screen and the depth buffer. glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Use the model matrix. glMatrixMode(GL_MODELVIEW); // Reset the model matrix. glLoadIdentity(); // Move into the screen 5 units. glTranslatef(0.0f, 0.0f, -5.0f); // Specify rotation along the X, Y, and Z axes. glRotatef(0, 1.0f, 0.0f, 0.0f); glRotatef(0, 0.0f, 1.0f, 0.0f); glRotatef(0, 0.0f, 0.0f, 1.0f); // Select the texture to use when rendering the box. glBindTexture(GL_TEXTURE_2D, tex); glColor4f(0.5f, 0.5f, 1.0f, 2.0f); glBlendFunc(GL_SRC_ALPHA, GL_ONE); // Set pointers to vertex coordinates and texture coordinates. glVertexPointer(3, GL_FLOAT, 0, vcoords); glTexCoordPointer(2, GL_FLOAT, 0, tcoords); // Enable vertex and texture coord arrays. glEnableClientState(GL_VERTEX_ARRAY); glEnableClientState(GL_TEXTURE_COORD_ARRAY); float scaleX = 2.0f; float scaleY = 0.5f; // Define the front face of the box. tcoords[0][0] = 1.0f; tcoords[0][1] = 0.0f; vcoords[0][0] = -0.5f * scaleX; vcoords[0][1] = -0.5f; vcoords[0][2] = 1.0f; tcoords[1][0] = 0.0f; tcoords[1][1] = 0.0f; vcoords[1][0] = 0.5f * scaleX; vcoords[1][1] = -0.5f; vcoords[1][2] = 1.0f; tcoords[2][0] = 0.0f; tcoords[2][1] = 1.0f; vcoords[2][0] = 0.5f * scaleX; vcoords[2][1] = 0.5f; vcoords[2][2] = 1.0f; tcoords[3][0] = 1.0f; tcoords[3][1] = 1.0f; vcoords[3][0] = -0.5f * scaleX; vcoords[3][1] = 0.5f; vcoords[3][2] = 1.0f; // This draws one textured plane using a strip of two triangles. glDrawElements(GL_TRIANGLE_STRIP, 4, GL_UNSIGNED_BYTE, indices); // Disable texture and vertex arrays. glDisableClientState(GL_TEXTURE_COORD_ARRAY); glDisableClientState(GL_VERTEX_ARRAY); // Reset the model matrix. glLoadIdentity(); // Move into the screen 5 units. glTranslatef(1.0f, 1.0f, -5.0f); // Specify rotation along the X, Y, and Z axes. glRotatef(0, 1.0f, 0.0f, 0.0f); glRotatef(0, 0.0f, 1.0f, 0.0f); glRotatef(WKMath::PI / 4.0f * 180.0f, 0.0f, 0.0f, 1.0f); // Select the texture to use when rendering the box. glBindTexture(GL_TEXTURE_2D, tex); glColor4f(1.0f, 1.0f, 1.0f, 1.0f); glBlendFunc(GL_SRC_ALPHA, GL_ONE); // Set pointers to vertex coordinates and texture coordinates. glVertexPointer(3, GL_FLOAT, 0, vcoords); glTexCoordPointer(2, GL_FLOAT, 0, tcoords); // Enable vertex and texture coord arrays. glEnableClientState(GL_VERTEX_ARRAY); glEnableClientState(GL_TEXTURE_COORD_ARRAY); // Define the front face of the box. tcoords[0][0] = 1.0f; tcoords[0][1] = 0.0f; vcoords[0][0] = -0.5f; vcoords[0][1] = -0.5f; vcoords[0][2] = 1.0f; tcoords[1][0] = 0.0f; tcoords[1][1] = 0.0f; vcoords[1][0] = 0.5f; vcoords[1][1] = -0.5f; vcoords[1][2] = 1.0f; tcoords[2][0] = 0.0f; tcoords[2][1] = 1.0f; vcoords[2][0] = 0.5f; vcoords[2][1] = 0.5f; vcoords[2][2] = 1.0f; tcoords[3][0] = 1.0f; tcoords[3][1] = 1.0f; vcoords[3][0] = -0.5f; vcoords[3][1] = 0.5f; vcoords[3][2] = 1.0f; // This draws one textured plane using a strip of two triangles. glDrawElements(GL_TRIANGLE_STRIP, 4, GL_UNSIGNED_BYTE, indices); // Disable texture and vertex arrays. glDisableClientState(GL_TEXTURE_COORD_ARRAY); glDisableClientState(GL_VERTEX_ARRAY); // Wait (blocks) until all GL drawing commands to finish. glFinish();  
  3. W.k Seah

    Direct3D9 Font

    Not easy to implement it in my game, especially when the graphics pipeline not coded by me.
  4. W.k Seah

    Direct3D9 Font

    Thanks, I will research on that.
  5. W.k Seah

    Direct3D9 Font

    Is there a way to draw he text behind DirectX meshes? I am using D3DXCreateFont() I hope I do not need to create my own Bitmap Font in this one.
  6. Sorry my bad. When I saw the word Luminance, I thought there's some relation in lighting. Now this sentence make me even more confuse. "Rendering can be thought as an indirect write access."
  7. I am not using lighting... I need the stencil buffer for minimap.
  8. I heard I can specify the stencil mask using a black and white image file. How do I do that and how do I specify the area of maksing?
  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!