GL_MODULATE is often used when objects are designed with both texture and lighting.Ģ.5 A choice to use either Texture object or display listįor static objects (objects that are not animated), (s,t) coordinates can be stored in the display list along with other parameters such as vertex coordinates and normal vectors. GL_REPLACE uses texture’s color to replace the object’s color GL_MODULATE allows the object color to shine through the texture. GlTe圎nvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE) GlTe圎nvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE) or Once texel color is defined, users can choose ways to combine texel color and object color using the function glTe圎nvf() as below: GlTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR) Figure 3: The GL_NEAREST yields different results than GL_LINEAR as shown in figure Source: GlTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST) With GL_LINEAR, four nearby texels are linearly interpolated to decide the final result for the texel’s color. With GL_NEAREST, the exact point sample of texture is used to make the decision. This step decides which textel’s color is as the texture is scaled up or down. Figure 2: Setting texture wrapping using glTexParameri() function Thoroughly studying the figure 2, learners can better understand how texture wrapping works. If users want to create a clamped texture, they can use the GL_CLAMP_TO_EDGE feature. If users want to repeat the texture, they can use the built-in GL_REPEAT feature. When texture coordinates are out of the normal range, users need to specify their desired effects for the final texture mapping using the function glTexParameteri(). After finishing the drawing, users can disable it using glDisable(GL_TEXTURE_2D). Texture coordinates can be distorted using transformation techniques such as translation, rotation, and scaling.īefore drawing an object, users need to enable GL_TEXTURE_2D using glEnable(GL_TEXTURE_2D). The function glTexCoord2f(s,t) is used to assign a texture coordinate for each vertex. Texture coordinates are looked up to decide the color for the a pixel as the pixel is drawn on screen. (0,0) is at the lower left corner while (1,1) is at the upper right corner. Texture coordinates (s, t) are in range of (0,1) as shown below. Texture coordinates need to be specified for each vertex otherwise, users can not map the bitmap texture onto the object. I personally prefer to use the unsigned char * BmpToTexture( char *, int *, int * ) from OSU’s graphic design class. Another way is to write down the function by ourselves. There is some open source code to do that users can download the. Users need to write a function to load the image into the program. Users should save the image as a 24-bit format and put it in the current working directory to load the image into the program. The Bitmap file can be converted from other types of images such as PNG, JPEG, and GIF. Each value of the texture 2D array is called texel. OpenGL supports bitmap texture, which is a 2D array of unsigned char Texture. Hopefully, users can have a better understanding of the purpose of each step in the texture mapping process. This blog introduces beginners with basic concepts of texture mapping. Texture can also be distorted for a visual effect. Texture mapping is fun and beneficial but it can be challenging for beginners. Texture mapping is a process of stretching a texture onto a 3D object the applied texture will follow the 3D object as it transforms.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |