{"id":3602,"date":"2018-01-16T13:14:32","date_gmt":"2018-01-16T05:14:32","guid":{"rendered":"http:\/\/www.bookcard.net\/wordpress\/?p=3602"},"modified":"2018-10-14T21:30:01","modified_gmt":"2018-10-14T13:30:01","slug":"opengl_transformation","status":"publish","type":"post","link":"https:\/\/www.bookcard.net\/wordpress\/opengl_transformation\/","title":{"rendered":"OpenGL\u4e4b\u8b8a\u63db"},"content":{"rendered":"<figure id=\"attachment_3603\" aria-describedby=\"caption-attachment-3603\" style=\"width: 640px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/www.bookcard.net\/wordpress\/wp-content\/uploads\/2018\/01\/OpenGL_TRANSFORMATION.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-3603\" src=\"https:\/\/www.bookcard.net\/wordpress\/wp-content\/uploads\/2018\/01\/OpenGL_TRANSFORMATION.jpg\" alt=\"\" width=\"640\" height=\"1500\" srcset=\"https:\/\/www.bookcard.net\/wordpress\/wp-content\/uploads\/2018\/01\/OpenGL_TRANSFORMATION.jpg 640w, https:\/\/www.bookcard.net\/wordpress\/wp-content\/uploads\/2018\/01\/OpenGL_TRANSFORMATION-128x300.jpg 128w, https:\/\/www.bookcard.net\/wordpress\/wp-content\/uploads\/2018\/01\/OpenGL_TRANSFORMATION-437x1024.jpg 437w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><figcaption id=\"caption-attachment-3603\" class=\"wp-caption-text\">OpenGL\u4e4b\u8b8a\u63db<\/figcaption><\/figure>\n<p>\u6e32\u67d33D\u5834\u666f\u6642\u9802\u9ede\u5728\u6700\u7d42\u88ab\u6e32\u67d3\u5230\u5c4f\u5e55\u4e0a\u4e4b\u524d\u9700\u7d93\u904e\u56db\u985e\u8b8a\u63db<\/p>\n<table>\n<tbody>\n<tr>\n<td width=\"284\">\u8b8a\u63db(TRANSFORMATION)<\/td>\n<td width=\"284\">\u7c21\u4ecb<\/td>\n<\/tr>\n<tr>\n<td width=\"284\">\u8996\u5716\u8b8a\u63db(VIEW transformation)<\/td>\n<td width=\"284\">\u8a2d\u5b9a\u651d\u5f71\u6a5fCAMERA\u7684\u4f4d\u7f6e<\/td>\n<\/tr>\n<tr>\n<td width=\"284\">\u6a21\u578b\u8b8a\u63db(MODEL transformation)<\/td>\n<td width=\"284\">\u79fb\u52d5\u3001\u65cb\u8f49\u3001\u7e2e\u653e\u591a\u908a\u578b\u6a21\u578b,\u5c07\u6a21\u578b\u5c40\u90e8\u5750\u6a19\u8f49\u70ba\u4e16\u754c\u5750\u6a19.<\/td>\n<\/tr>\n<tr>\n<td width=\"284\"><a href=\"https:\/\/www.bookcard.net\/wordpress\/opengl_projection_transformation\/\">\u6295\u5f71\u8b8a\u63db(PROJECTION transformation)<\/a><\/td>\n<td width=\"284\">\u8a2d\u5b9a\u8996\u53e3\u9762\u7a4d\u548c\u88c1\u526a\u5e73\u9762,\u7528\u65bc\u78ba\u5b9a\u90a3\u4e9b\u591a\u908a\u578b\u6a21\u578b\u4f4d\u65bc\u8996\u53e3\u4e4b\u5167.<\/td>\n<\/tr>\n<tr>\n<td width=\"284\"><a href=\"https:\/\/www.bookcard.net\/wordpress\/opengl_viewport\/\">\u8996\u53e3\u8b8a\u63db(Viewport transformation)<\/a><\/td>\n<td width=\"284\">\u5c07\u526a\u5207\u5750\u6a19\u5f71\u5c04\u52302D\u8996\u53e3(\u5c4f\u5e55)<\/td>\n<\/tr>\n<tr>\n<td width=\"284\">\u6a21\u578b\u8996\u5716\u8b8a\u63db(modelview transformation)<\/td>\n<td width=\"284\">OpenGL\u5c07\u8996\u5716\u8b8a\u63db\u8207\u6a21\u578b\u8b8a\u63db\u7d44\u5408\u6210\u55ae\u7368\u7684\u6a21\u578b\u8996\u5716\u8b8a\u63db<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u8996\u5716\u8b8a\u63db(VIEW transformation) \u5373\u651d\u5f71\u6a5f\u7684\u8a2d\u5b9a\u6709\u4e09\u7a2e\u653e\u6cd5,\u5148\u5c07\u89c0\u5bdf\u77e9\u9663\u8f09\u5165\u55ae\u4f4d\u77e9\u9663glLoadIdentity();\u76f8\u6a5f\u70ba\u65bc\u539f\u9ede,\u671d\u5411\u70ba\u8ca0Z\u8ef8,\u4e0a\u65b9\u5411\u91cf\u70ba\u6b63Y\u8ef8.<\/p>\n<table>\n<tbody>\n<tr>\n<td width=\"284\">\u8996\u5716\u8b8a\u63db(VIEW transformation)<\/td>\n<td width=\"284\">\u7c21\u4ecb<\/td>\n<\/tr>\n<tr>\n<td width=\"284\"><a href=\"https:\/\/www.bookcard.net\/wordpress\/opengl_lookat\/\">gluLookAt ()<\/a><\/td>\n<td width=\"284\">\u8a2d\u5b9a\u651d\u5f71\u6a5f\u7684\u4f4d\u7f6e\u548c\u65b9\u5411<\/td>\n<\/tr>\n<tr>\n<td width=\"284\"><a href=\"https:\/\/www.bookcard.net\/wordpress\/opengl_camera_rotate_translate\/\">glRotatef ()\u8207glTranslatef()<\/a><\/td>\n<td width=\"284\">\u651d\u5f71\u6a5fCAMERA\u56fa\u5b9a\u5728\u539f\u9ede,\u4f7f\u7528\u65cb\u8f49\u548c\u5e73\u79fb\u5728\u4e16\u754c\u5750\u6a19\u4e2d\u79fb\u52d5\u6240\u6709\u6a21\u578b<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u6a21\u578b\u8b8a\u63db(MODEL transformation)\u662f\u6307\u901a\u904e\u5e73\u79fb\u3001\u7e2e\u653e\u3001\u65cb\u8f49\u5c07\u6a21\u578b\u5b9a\u4f4d\u8207\u5b9a\u5411<\/p>\n<table>\n<tbody>\n<tr>\n<td width=\"284\">\u6a21\u578b\u8b8a\u63db(MODEL transformation)<\/td>\n<td width=\"284\">\u7c21\u4ecb<\/td>\n<\/tr>\n<tr>\n<td width=\"284\"><a href=\"https:\/\/www.bookcard.net\/wordpress\/opengl_translate\/\">\u5e73\u79fbglTranslatef()<\/a><\/td>\n<td width=\"284\">\u6a21\u578b\u6cbf\u5411\u91cf\u9032\u884c\u79fb\u52d5<\/td>\n<\/tr>\n<tr>\n<td width=\"284\"><a href=\"https:\/\/www.bookcard.net\/wordpress\/opengl_rotate\/\">\u65cb\u8f49glRotatef()<\/a><\/td>\n<td width=\"284\">\u6a21\u578b\u7e5e\u5411\u91cf\u9032\u884c\u65cb\u8f49<\/td>\n<\/tr>\n<tr>\n<td width=\"284\"><a href=\"https:\/\/www.bookcard.net\/wordpress\/opengl_scale\/\">\u7e2e\u653eglScalef()<\/a><\/td>\n<td width=\"284\">\u5728XYZ\u4e09\u8ef8\u6307\u5b9a\u4e0d\u540c\u7e2e\u653e\u4fc2\u6578\u653e\u5927\u6216\u7e2e\u5c0f\u6a21\u578b<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><a href=\"https:\/\/www.bookcard.net\/wordpress\/opengl_projection_transformation\/\">\u6295\u5f71\u8b8a\u63db(PROJECTION transformation)<\/a>\u662f\u6307\u8a2d\u5b9a\u8996\u53e3\u9762\u7a4d\u548c\u88c1\u526a\u5e73\u9762,\u5b83\u5728\u6a21\u578b\u8b8a\u63db\u8207\u8996\u5716\u8b8a\u63db\u4e4b\u5f8c\u57f7\u884c,\u7528\u65bc\u78ba\u5b9a\u90a3\u4e9b\u591a\u908a\u578b\u6a21\u578b\u4f4d\u65bc\u8996\u53e3\u4e4b\u5167.\u5728\u8a2d\u5b9a\u6295\u5f71\u4e4b\u524d\u9700\u8981\u9078\u64c7\u6295\u5f71\u77e9\u9663\u5806\u68e7glMatrixMode(GL_PROJECTION);\u548c\u8f09\u5165\u55ae\u4f4d\u77e9\u9663glLoadIdentity();OpenGL\u652f\u6301\u5169\u985e\u6295\u5f71<\/p>\n<table>\n<tbody>\n<tr>\n<td width=\"284\"><a href=\"https:\/\/www.bookcard.net\/wordpress\/opengl_projection_transformation\/\">\u6295\u5f71\u8b8a\u63db(PROJECTION transformation)<\/a><\/td>\n<td width=\"284\">\u7c21\u4ecb<\/td>\n<\/tr>\n<tr>\n<td width=\"284\">\u900f\u8996\u6295\u5f71<\/p>\n<p>glFrustum()<\/p>\n<p>gluPerspective()<\/td>\n<td width=\"284\">\u7528\u65bc3D\u4e16\u754c\u7684\u986f\u793a\u8207\u771f\u5be6\u4e16\u754c\u4e00\u6a23, \u591a\u908a\u578b\u6a21\u578b\u5448\u73fe\u8fd1\u5927\u9060\u5c0f<\/td>\n<\/tr>\n<tr>\n<td width=\"284\">\u6b63\u4ea4\u6295\u5f71<\/p>\n<p>glOrtho()<\/p>\n<p>gluOrtho2D()<\/td>\n<td width=\"284\">\u4e0d\u8003\u6ffe\u8207\u651d\u5f71\u6a5f\u7684\u8ddd\u96e2,\u986f\u793a\u591a\u908a\u578b\u6a21\u578b\u771f\u5be6\u7684\u5927\u5c0f,\u5e38\u7528\u65bcCAD\u8edf\u4ef6\u548c2D\u904a\u6232<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u8996\u53e3\u8b8a\u63db(Viewport transformation)\u767c\u751f\u5728\u6295\u5f71\u8b8a\u63db\u4e4b\u5f8c,\u8996\u53e3\u662f\u6307\u6e32\u67d3\u76842D\u7a97\u53e3\u7684\u5927\u5c0f\u548c\u65b9\u5411<\/p>\n<table>\n<tbody>\n<tr>\n<td width=\"284\">\u8996\u53e3\u8b8a\u63db(Viewport transformation)<\/td>\n<td width=\"284\">\u7c21\u4ecb<\/td>\n<\/tr>\n<tr>\n<td width=\"284\"><a href=\"https:\/\/www.bookcard.net\/wordpress\/opengl_viewport\/\">glViewport()<\/a><\/td>\n<td width=\"284\">\u6bcf\u7576\u7a97\u53e3\u5927\u5c0f\u767c\u751f\u6539\u8b8a\u90fd\u8981\u91cd\u8a2d\u8996\u53e3\u5927\u5c0f<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><a href=\"https:\/\/www.bookcard.net\/wordpress\/opengl_matrix\/\">\u77e9\u9663\u5806\u68e7<\/a><\/p>\n<p>OpenGL\u7684\u8b8a\u63db\u904b\u7b97\u5747\u5c0d\u77e9\u9663\u5806\u68e7\u7684\u68e7\u9802\u9032\u884c\u64cd\u4f5c.<\/p>\n<table>\n<tbody>\n<tr>\n<td width=\"295\"><a href=\"https:\/\/www.bookcard.net\/wordpress\/opengl_matrix\/\">OpenGL\u77e9\u9663\u5806\u68e7<\/a><\/td>\n<td width=\"273\">\u7c21\u4ecb<\/td>\n<\/tr>\n<tr>\n<td width=\"295\">Modelview Matrix Stack<\/td>\n<td width=\"273\">\u6a21\u578b\u8996\u5716\u77e9\u9663\u5806\u68e7<\/td>\n<\/tr>\n<tr>\n<td width=\"295\">Projection Matrix Stack<\/td>\n<td width=\"273\">\u6295\u5f71\u77e9\u9663\u5806\u68e7<\/td>\n<\/tr>\n<tr>\n<td width=\"295\">TEXTURE Matrix Stack<\/td>\n<td width=\"273\">\u7d0b\u7406\u77e9\u9663\u5806\u68e7<\/td>\n<\/tr>\n<tr>\n<td width=\"295\">ATTRIB Matrix Stack<\/td>\n<td width=\"273\">\u5c6c\u6027\u77e9\u9663\u5806\u68e7<\/td>\n<\/tr>\n<tr>\n<td width=\"295\">CLIENT ATTRIB Matrix Stack<\/td>\n<td width=\"273\">\u526a\u5207\u5c6c\u6027\u77e9\u9663\u5806\u68e7<\/td>\n<\/tr>\n<tr>\n<td width=\"295\">NAME Matrix Stack<\/td>\n<td width=\"273\"><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u6e32\u67d33D\u5834\u666f\u6642\u9802\u9ede\u5728\u6700\u7d42\u88ab\u6e32\u67d3\u5230\u5c4f\u5e55\u4e0a\u4e4b\u524d\u9700\u7d93\u904e\u56db\u985e\u8b8a\u63db \u8b8a\u63db(TRANSFORMATION) \u7c21\u4ecb \u8996\u5716\u8b8a\u63db &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/www.bookcard.net\/wordpress\/opengl_transformation\/\" class=\"more-link\">\u7e7c\u7e8c\u95b1\u8b80 <span class=\"screen-reader-text\">OpenGL\u4e4b\u8b8a\u63db<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[62],"tags":[50],"class_list":["post-3602","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\/3602","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=3602"}],"version-history":[{"count":1,"href":"https:\/\/www.bookcard.net\/wordpress\/wp-json\/wp\/v2\/posts\/3602\/revisions"}],"predecessor-version":[{"id":3604,"href":"https:\/\/www.bookcard.net\/wordpress\/wp-json\/wp\/v2\/posts\/3602\/revisions\/3604"}],"wp:attachment":[{"href":"https:\/\/www.bookcard.net\/wordpress\/wp-json\/wp\/v2\/media?parent=3602"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.bookcard.net\/wordpress\/wp-json\/wp\/v2\/categories?post=3602"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.bookcard.net\/wordpress\/wp-json\/wp\/v2\/tags?post=3602"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}