{"id":3679,"date":"2018-01-31T13:45:49","date_gmt":"2018-01-31T05:45:49","guid":{"rendered":"http:\/\/www.bookcard.net\/wordpress\/?p=3679"},"modified":"2018-10-14T21:34:56","modified_gmt":"2018-10-14T13:34:56","slug":"opengl_terrain","status":"publish","type":"post","link":"https:\/\/www.bookcard.net\/wordpress\/opengl_terrain\/","title":{"rendered":"OpenGL\u4e4b\u8f09\u5165\u5730\u5f62\u6587\u6a94"},"content":{"rendered":"<figure id=\"attachment_3683\" aria-describedby=\"caption-attachment-3683\" style=\"width: 1024px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/www.bookcard.net\/wordpress\/wp-content\/uploads\/2018\/01\/Opengl_terrain.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-3683\" src=\"https:\/\/www.bookcard.net\/wordpress\/wp-content\/uploads\/2018\/01\/Opengl_terrain.jpg\" alt=\"\" width=\"1024\" height=\"768\" srcset=\"https:\/\/www.bookcard.net\/wordpress\/wp-content\/uploads\/2018\/01\/Opengl_terrain.jpg 1024w, https:\/\/www.bookcard.net\/wordpress\/wp-content\/uploads\/2018\/01\/Opengl_terrain-300x225.jpg 300w, https:\/\/www.bookcard.net\/wordpress\/wp-content\/uploads\/2018\/01\/Opengl_terrain-768x576.jpg 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption id=\"caption-attachment-3683\" class=\"wp-caption-text\">OpenGL\u4e4b\u8f09\u5165\u5730\u5f62\u6587\u6a94<\/figcaption><\/figure>\n<p>\u5730\u5f62\u6587\u6a94\u5c31\u662f256\u8272\u4f4d\u5716\u6587\u6a94,\u56e0\u70ba\u4f4d\u5716\u5373\u9ede\u9663\u5716.\u9ede\u7684\u6578\u503c\u8d8a\u5927\u5730\u5f62\u8d8a\u9ad8,\u6578\u503c\u8d8a\u4f4e\u5f62\u6210\u4f4e\u7aaa\u5730\u5e36.\u6700\u7d42\u751f\u6210\u9ad8\u5c71\u3001\u6e56\u6c34.<\/p>\n<p>\u5730\u5f62\u6f14\u793a\u7a0b\u5f0f:<a href=\"https:\/\/www.bookcard.net\/wordpress\/wp-content\/uploads\/2018\/01\/OpenGLTerrain.zip\">\u4e0b\u8f09<\/a><\/p>\n<ol>\n<li>\u6309+\/-\u9375\u79fb\u52d5<a href=\"https:\/\/www.bookcard.net\/wordpress\/opengl_fog\/\">\u7159\u9727<\/a>\u8ddd\u96e2<\/li>\n<li>\u6309{}\u9375\u5347\u9ad8\u6216\u964d\u4f4e\u6e56\u6c34\u9ad8\u5ea6<\/li>\n<li>OPEN\/FILE\u8f09\u5165\u5730\u5f62\u6587\u6a94,<a href=\"https:\/\/www.bookcard.net\/wordpress\/windows_file_drag\/\">\u652f\u6301\u62d6\u653e<\/a>.<\/li>\n<li>\u53ea\u652f\u6301RAW\u683c\u5f0f<\/li>\n<li>\u6309ESC\u9375\u91cd\u7f6e\u805a\u5730\u5f62\u6587\u6a94<\/li>\n<li>\u58d3\u7e2e\u5305\u5167\u7684terrain\u76ee\u9304\u9644\u6709\u4e09\u500b\u5730\u5f62\u6587\u6a94<\/li>\n<\/ol>\n<p>\u7e6a\u756b\u5730\u5f62\u601d\u8def\u5982\u4e0b:<\/p>\n<ol>\n<li>\u8a2d\u5730\u5f62\u7684\u6700\u5927\u9ad8\u5ea6\u70ba10<\/li>\n<li>\u6e56\u6c34\u5e73\u9762\u8a2d\u70ba1<\/li>\n<li>\u56e0\u70ba\u50cf\u7d208Bit\u6700\u5927256\u8272, \u6240\u4ee5\u7e2e\u653e\u56e0\u5b50\u7b49\u65bc256\u9664\u4ee5\u5730\u5f62\u7684\u6700\u5927\u9ad8\u5ea6scale=256\/10<\/li>\n<li>\u5730\u5f62\u7531\u4e09\u89d2\u5f62\u6240\u7d44\u6210, \u904d\u66c6\u6240\u6709\u50cf\u7d20\u751f\u6210\u4e09\u89d2\u5f62.<\/li>\n<li>\u5730\u5f62\u7684\u984f\u8272\u7531\u7da0\u8272\u5206\u91cf\u7d44\u6210,Y\u5ea7\u6a19\u8d8a\u9ad8\u984f\u8272\u8d8a\u660e\u4eae.<\/li>\n<li>\u901a\u904e\u50cf\u7d20\u7684\u7d22\u5f15\u751f\u6210\u4e09\u89d2\u5f62XZ\u5ea7\u6a19<\/li>\n<li>\u901a\u904e\u50cf\u7d20\u7684\u984f\u8272\u503c\u751f\u6210\u4e09\u89d2\u5f62Y\u5ea7\u6a19\uff0cY=\u50cf\u7d20\u984f\u8272\/\u7e2e\u653e\u56e0\u5b50<\/li>\n<li>\u7e6a\u756b\u85cd\u8272\u6e56\u6c34\u5e73\u9762\u8986\u84cb\u4f4e\u7aaa\u5730\u5e36<\/li>\n<\/ol>\n<p>\u6210\u751f\u5730\u5f62RAW\u6587\u6a94<\/p>\n<ol>\n<li>\u6253\u958bPhotoshop\u4e26\u8f09\u5165\u9ad8\u7a7a\u62cd\u651d\u5716<\/li>\n<li>\u5927\u5c0f\u8f49\u63db\u70ba64*64\u50cf\u7d20<\/li>\n<li>\u5716\u50cf\/\u6a21\u5f0f\/\u7070\u5ea6<\/li>\n<li>\u5716\u50cf\/\u6a21\u5f0f\/8\u4f4d\u901a\u9053<\/li>\n<li>\u5132\u5b58\u70ba.RAW\u6587\u6a94<\/li>\n<\/ol>\n<p>\u7e6a\u756b\u5730\u5f62\u7684\u51fd\u5f0f\u793a\u4f8b<\/p>\n<p>void Draw_Terrain (PBYTE data,int height,int width)<\/p>\n<p>{<\/p>\n<p>for(int z=0;z &lt; height-1; ++z)<\/p>\n<p>{<\/p>\n<p>glBegin(GL_TRIANGLE_STRIP);\/\/ \u7e6a\u756b\u4e09\u89d2\u5f62<\/p>\n<p>for(int x=0;x &lt; width; ++x)<\/p>\n<p>{<\/p>\n<p>float scaled_height1 = data[ z\u00a0\u00a0 * width + x] \/ (256.0f \/ 10.0f);<\/p>\n<p>float scaled_height2 = data[(z+1)* width + x] \/ (256.0f \/ 10.0f);<\/p>\n<p>glColor3f(0.1f, 0.5f + 0.5f * scaled_height1 \/ 10, 0.1f);\/\/ \u5c71\u5730\u7684\u984f\u8272,\u5730\u52e2\u8d8a\u9ad8\u7da0\u8272\u5206\u91cf\u8d8a\u5927<\/p>\n<p>glVertex3f((x &#8211; width\/2.0f), scaled_height1,(z &#8211; height\/2.0f));<\/p>\n<p>glColor3f(0.1f, 0.5f + 0.5f * scaled_height2 \/ 10, 0.1f);\/\/ \u5c71\u5730\u7684\u984f\u8272,\u5730\u52e2\u8d8a\u9ad8\u7da0\u8272\u5206\u91cf\u8d8a\u5927<\/p>\n<p>glVertex3f((x &#8211; width\/2.0f), scaled_height2, ((z+1) &#8211; height\/2.0f));<\/p>\n<p>}<\/p>\n<p>glEnd();<\/p>\n<p>}<\/p>\n<p>\/\/ \u7e6a\u756b\u6e56\u9762<\/p>\n<p>glColor3f(0.0, 0.0, 0.8f);\/\/ \u85cd\u8272\u6e56\u6c34<\/p>\n<p>glBegin(GL_QUADS);<\/p>\n<p>glVertex3f(-width\/2.1f, 1,\u00a0 height\/2.1f);<\/p>\n<p>glVertex3f( width\/2.1f, 1,\u00a0 height\/2.1f);<\/p>\n<p>glVertex3f( width\/2.1f, 1, -height\/2.1f);<\/p>\n<p>glVertex3f(-width\/2.1f, 1, -height\/2.1f);<\/p>\n<p>glEnd();<\/p>\n<p>}<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u5730\u5f62\u6587\u6a94\u5c31\u662f256\u8272\u4f4d\u5716\u6587\u6a94,\u56e0\u70ba\u4f4d\u5716\u5373\u9ede\u9663\u5716.\u9ede\u7684\u6578\u503c\u8d8a\u5927\u5730\u5f62\u8d8a\u9ad8,\u6578\u503c\u8d8a\u4f4e\u5f62\u6210\u4f4e\u7aaa\u5730\u5e36.\u6700\u7d42\u751f\u6210\u9ad8\u5c71\u3001\u6e56\u6c34 &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/www.bookcard.net\/wordpress\/opengl_terrain\/\" class=\"more-link\">\u7e7c\u7e8c\u95b1\u8b80 <span class=\"screen-reader-text\">OpenGL\u4e4b\u8f09\u5165\u5730\u5f62\u6587\u6a94<\/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-3679","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\/3679","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=3679"}],"version-history":[{"count":5,"href":"https:\/\/www.bookcard.net\/wordpress\/wp-json\/wp\/v2\/posts\/3679\/revisions"}],"predecessor-version":[{"id":3688,"href":"https:\/\/www.bookcard.net\/wordpress\/wp-json\/wp\/v2\/posts\/3679\/revisions\/3688"}],"wp:attachment":[{"href":"https:\/\/www.bookcard.net\/wordpress\/wp-json\/wp\/v2\/media?parent=3679"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.bookcard.net\/wordpress\/wp-json\/wp\/v2\/categories?post=3679"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.bookcard.net\/wordpress\/wp-json\/wp\/v2\/tags?post=3679"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}