{"id":3947,"date":"2018-04-15T15:05:23","date_gmt":"2018-04-15T07:05:23","guid":{"rendered":"http:\/\/www.bookcard.net\/wordpress\/?p=3947"},"modified":"2018-10-14T21:20:35","modified_gmt":"2018-10-14T13:20:35","slug":"opengl_vertexarray_multitexture","status":"publish","type":"post","link":"https:\/\/www.bookcard.net\/wordpress\/opengl_vertexarray_multitexture\/","title":{"rendered":"OpenGL\u4e4b\u9802\u9ede\u6578\u7d44\u8207\u591a\u7d0b\u7406\u6620\u5c04"},"content":{"rendered":"<p><figure id=\"attachment_3948\" aria-describedby=\"caption-attachment-3948\" style=\"width: 1024px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/www.bookcard.net\/wordpress\/wp-content\/uploads\/2018\/04\/OpenGL_VertexArray_Multitexture.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-3948\" src=\"https:\/\/www.bookcard.net\/wordpress\/wp-content\/uploads\/2018\/04\/OpenGL_VertexArray_Multitexture.jpg\" alt=\"\" width=\"1024\" height=\"768\" srcset=\"https:\/\/www.bookcard.net\/wordpress\/wp-content\/uploads\/2018\/04\/OpenGL_VertexArray_Multitexture.jpg 1024w, https:\/\/www.bookcard.net\/wordpress\/wp-content\/uploads\/2018\/04\/OpenGL_VertexArray_Multitexture-300x225.jpg 300w, https:\/\/www.bookcard.net\/wordpress\/wp-content\/uploads\/2018\/04\/OpenGL_VertexArray_Multitexture-768x576.jpg 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption id=\"caption-attachment-3948\" class=\"wp-caption-text\">OpenGL\u4e4b\u9802\u9ede\u6578\u7d44\u8207\u591a\u7d0b\u7406\u6620\u5c04<\/figcaption><\/figure>\u5c07\u9802\u9ede\u6578\u7d44\u300eVertexArray\u300f\u61c9\u7528\u65bc\u591a\u7d0b\u7406\u300eMultitexture\u300f\u6620\u5c04,\u7531\u65bc\u6bcf\u500b\u7d0b\u7406\u55ae\u5143\u90fd\u6709\u5176\u81ea\u5df2\u7684\u72c0\u614b.\u8981\u5c07\u6bcf\u500b\u7d0b\u7406\u55ae\u5143\u90fd\u55ae\u5ea6\u5730\u555f\u7528\u9802\u9ede\u6578\u7d44,\u4e26\u4e14\u70ba\u5176\u6bcf\u500b\u7d0b\u7406\u55ae\u5143\u8a2d\u5b9a\u7d0b\u7406\u5ea7\u6a19\u7684\u9802\u9ede\u6578\u7d44.\u901a\u904e\u5e38\u8a66\u53ef\u4ee5\u5c07\u591a\u500b2D\u7d0b\u7406(GL_TEXTURE_2D)\u9032\u884c\u6620\u5c04,\u4f462D\u7d0b\u7406\u82071D\u7d0b\u7406(GL_TEXTURE_1D)\u591a\u6b21\u511f\u8a66\u90fd\u7121\u6cd5\u5c07\u300e\u9802\u9ede\u6578\u7d44\u300f\u61c9\u7528\u300e\u7d0b\u7406\u6578\u7d44\u300f\u6620\u5c04\u6688.\u6f14\u793a\u7a0b\u5f0f\u6309\u7a7a\u683c\u9375\u5207\u63db\u300e\u591a\u7d0b\u7406\u6620\u5c04\u300f\u8349\u5730\u7d0b\u7406\u8207\u9ad8\u5ea6\u7d0b\u7406.\u5169\u8005\u5e40\u6578\u76f8\u7d04.<a href=\"https:\/\/www.bookcard.net\/wordpress\/wp-content\/uploads\/2018\/04\/OpenGLVertexArrayMultitexture.zip\">\u4e0b\u8f09<\/a>:<\/p>\n<p>&nbsp;<\/p>\n<p>\u8981\u8b93\u7d0b\u7406\u55ae\u5143\u4f7f\u7528\u9802\u9ede\u6578\u7d44,\u5fc5\u9808\u5148\u6fc0\u6d3b\u5b83.<\/p>\n<p>void glClientActiveTexture(GLenum texture);<\/p>\n<p>texture:\u7d0b\u7406\u55ae\u5143\u7d22\u5f15GL_TEXTURE0_ARB~GL_TEXTURE31_ARB<\/p>\n<p>&nbsp;<\/p>\n<p>\u555f\u7528\u7d0b\u7406\u55ae\u5143\u9802\u9ede\u5ea7\u6a19\u6578\u7d44<\/p>\n<p>void glEnableClientState(GLenum array);<\/p>\n<p>\u7981\u7528\u7d0b\u7406\u55ae\u5143\u9802\u9ede\u5ea7\u6a19\u6578\u7d44<\/p>\n<p>void glDisableClientState(GLenum array);<\/p>\n<p>array:GL_TEXTURE_COORD_ARRAY \u7d0b\u7406\u5ea7\u6a19\u6578\u7d44<\/p>\n<p>&nbsp;<\/p>\n<p>\u70ba\u7d0b\u7406\u55ae\u5143\u8a2d\u5b9a\u6307\u5b9a\u6578\u7d44<\/p>\n<p>void WINAPI glTexCoordPointer(Glint size,GLenum type,GLsizei stride,const GLvoid \u00a0*pointer);<\/p>\n<p>&nbsp;<\/p>\n<p>\u8a2d\u7f6e\u5169\u500b\u7d0b\u7406\u55ae\u5143\u8a2d\u7f6e\u9802\u9ede\u6578\u7d44<\/p>\n<p>glClientActiveTexture(GL_TEXTURE0_ARB);\/\/ \u6fc0\u6d3b\u7d0b\u74060\u00a0<\/p>\n<p>glEnableClientState(GL_VERTEX_ARRAY); \/\/ \u555f\u7528\u9802\u9ede\u6578\u7d44<\/p>\n<p>glEnableClientState(GL_TEXTURE_COORD_ARRAY); \/\/ \u555f\u7528\u7d0b\u7406\u5ea7\u6a19\u6578\u7d44<\/p>\n<p>glVertexPointer(3, GL_FLOAT, 0, terrain-&gt;vertex_array);\/\/ \u9802\u9ede\u6578\u7d44<\/p>\n<p>glTexCoordPointer(3, GL_FLOAT, 0, terrain-&gt;grass_texcoord);\/\/ \u7d0b\u7406\u6578\u7d44<\/p>\n<p>glClientActiveTexture(GL_TEXTURE1_ARB);\/\/ \u6fc0\u6d3b\u7d0b\u74061<\/p>\n<p>glEnableClientState(GL_TEXTURE_COORD_ARRAY);<\/p>\n<p>glTexCoordPointer(3, GL_FLOAT,0, terrain-&gt;height_texcoord);\/\/ \u7d0b\u7406\u6578\u7d44<\/p>\n<p>glDrawArrays(GL_TRIANGLES, 0, polygon_num);\/\/ \u7e6a\u756b\u6240\u6709\u7576\u524d\u4ee5\u555f\u7528\u7684\u9802\u9ede\u6578\u7d44<\/p>\n<p>glDisable(GL_TEXTURE_1D);\/\/ \u7981\u7528\u7d0b\u7406\u55ae\u51431<\/p>\n<p>glClientActiveTexture(GL_TEXTURE0_ARB);\/\/ \u91cd\u65b0\u6fc0\u6d3b\u7d0b\u74060,\u9019\u500b\u5f88\u91cd\u8981\u5426\u5247\u6703\u5f71\u97ff\u5176\u5b83\u7d0b\u7406\u8cbc\u5716<\/p>\n<p>glDisableClientState(GL_VERTEX_ARRAY); \/\/ \u7981\u7528\u9802\u9ede\u6578\u7d44<\/p>\n<p>glDisableClientState(GL_TEXTURE_COORD_ARRAY); \/\/ \u7981\u7528\u7d0b\u7406\u5ea7\u6a19\u6578\u7d44<\/p>\n<p>glDisableClientState(GL_NORMAL_ARRAY);\/\/ \u7981\u7528\u6cd5\u7dda\u6578\u7d44<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u5c07\u9802\u9ede\u6578\u7d44\u300eVertexArray\u300f\u61c9\u7528\u65bc\u591a\u7d0b\u7406\u300eMultitexture\u300f\u6620\u5c04,\u7531\u65bc\u6bcf\u500b\u7d0b\u7406\u55ae\u5143\u90fd\u6709\u5176\u81ea\u5df2\u7684 &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/www.bookcard.net\/wordpress\/opengl_vertexarray_multitexture\/\" class=\"more-link\">\u7e7c\u7e8c\u95b1\u8b80 <span class=\"screen-reader-text\">OpenGL\u4e4b\u9802\u9ede\u6578\u7d44\u8207\u591a\u7d0b\u7406\u6620\u5c04<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[62],"tags":[50],"class_list":["post-3947","post","type-post","status-publish","format-standard","hentry","category-opengl","tag-opengl","entry"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.bookcard.net\/wordpress\/wp-json\/wp\/v2\/posts\/3947","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.bookcard.net\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.bookcard.net\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.bookcard.net\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bookcard.net\/wordpress\/wp-json\/wp\/v2\/comments?post=3947"}],"version-history":[{"count":3,"href":"https:\/\/www.bookcard.net\/wordpress\/wp-json\/wp\/v2\/posts\/3947\/revisions"}],"predecessor-version":[{"id":4144,"href":"https:\/\/www.bookcard.net\/wordpress\/wp-json\/wp\/v2\/posts\/3947\/revisions\/4144"}],"wp:attachment":[{"href":"https:\/\/www.bookcard.net\/wordpress\/wp-json\/wp\/v2\/media?parent=3947"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.bookcard.net\/wordpress\/wp-json\/wp\/v2\/categories?post=3947"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.bookcard.net\/wordpress\/wp-json\/wp\/v2\/tags?post=3947"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}