{"id":49,"date":"2005-05-11T07:03:00","date_gmt":"2005-05-11T07:03:00","guid":{"rendered":"http:\/\/www.gisdeveloper.co.kr\/?p=49"},"modified":"2017-01-29T20:19:06","modified_gmt":"2017-01-29T11:19:06","slug":"opengl-tutorial-fog","status":"publish","type":"post","link":"http:\/\/www.gisdeveloper.co.kr\/?p=49","title":{"rendered":"[OpenGL Tutorial] Fog"},"content":{"rendered":"<p><P><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.gisdeveloper.co.kr\/wp-content\/uploads\/1\/1131359001.jpg\" class=\"alignleft\" width=\"200\" height=\"150\" alt=\"\uc0ac\uc6a9\uc790 \uc0bd\uc785 \uc774\ubbf8\uc9c0\" \/>\uc774\uc7a5\uc5d0\uc11c\ub294 OpenGL\uc5d0\uc11c \uc548\uac1c \ud6a8\uacfc\ub97c \uc5bb\ub294 \uac83\uc5d0 \ub300\ud574\uc11c \uc54c\uc544\ubcf4\uc790. OpenGL\uc740 \uc548\uac1c \ud6a8\uacfc\ub97c \uc5bb\uae30 \uc704\ud574 \ud2b9\ubcc4\ud55c \ud2b8\ub9ad\uc744 \uc0ac\uc6a9\ud574\uc57c\ud558\ub294 \uac83\uc774 \uc544\ub2c8\ub77c \uc548\uac1c \ud6a8\uacfc\ub97c \uc704\ud55c API\ub97c \uc81c\uacf5\ud568\uc73c\ub85c\uc368 \uc27d\uac8c \uc548\uac1c \ud6a8\uacfc\ub97c \uc5bb\uc744 \uc218 \uc788\ub2e4.<\/P><P>OpenGL\uc5d0\uc11c \uc81c\uacf5\ud558\ub294 \uc548\uac1c\uc758 \uc885\ub958\ub294 3\uac00\uc9c0\uac00 \uc788\ub294\ub370 \uc0ac\uc2e4 2\uac00\uc9c0\ub85c \uad6c\ubd84\ub41c\ub2e4. \ud558\ub098\ub294 GL_EXP\uc640 GL_EXP2\uc774\uace0 \ub2e4\ub978 \ud558\ub098\ub294 GL_LINEAR\uc774\ub2e4. GL_EXP\uc640 GL_EXP2\ub294 \ubc00\ub3c4\ub77c\ub294 \uac12\uc744 \uc774\uc6a9\ud574\uc11c \ud654\uba74 \uc804\uccb4\uc5d0 \uc9c0\uc815\ub41c \uc548\uac1c\uc758 \uc0c9\uc73c\ub85c \ub9c8\uce58 \uc790\uc6b1\ud55c \uc5f0\uae30 \uc548\uc5d0 \ubb3c\uccb4\ub4e4\uc774 \ub193\uc5ec\uc788\ub294 \ub4ef\ud55c \ud6a8\uacfc\ub97c \ub0b8\ub2e4. GL_LINEAR\uc740 \uc548\uac1c\uac00 \uc774\uc81c \ub9c9 \uc2dc\uc791\ub418\ub294 \uae4a\uc774\uc640 \uc548\uac1c\uac00 \uc644\uc804\ud558\uac8c \ub4e4\uc774\uc6cc\uc838\uc11c \ub354 \uc774\uc0c1 \ubb3c\uccb4\uac00 \ubcf4\uc774\uc9c0 \uc54a\uc744 \uae4a\uc774\ub97c \uc9c0\uc815\ud568\uc73c\ub85c\uc368 \uc0ac\uc2e4 \uac00\uc7a5 \uc2e4\uc81c\uc801\uc778 \uc548\uac1c \ud6a8\uacfc\ub97c \uc5f0\ucd9c\ud560 \uc218 \uc788\ub2e4. \uc774\ub860 \uc124\uba85\uc740 \uc5ec\uae30\uc11c \ub9c8\uce58\uae30\ub85c \ud558\uace0 \ucf54\ub529\uc5d0 \ub4e4\uc5b4\uac00\ubcf4\uc790. 6\uc7a5\uc5d0\uc11c \ub9cc\ub4e0 \ucf54\ub4dc\uc5d0\uc11c\ubd80\ud130 \uc2dc\uc791\ud574\ubcf4\uc790.<\/P><P>\uba3c\uc800 \uc548\uac1c\uc5d0 \ub300\ud574\uc11c \uc124\uc815\ud574\uc57c \ud560 \uac12\ub4e4\uc774 \uc788\ub2e4. initGL \ud568\uc218\uc758 \uad6c\ud604\ubd80\uc5d0 \ub2e4\uc74c\uacfc \uac19\uc740 \ubc30\uc5f4\uc744 \uc120\uc5b8\ud55c\ub2e4.<\/P><\/p>\n<pre>GLfloat fogColor[] = { 1.0f, 1.0f, 1.0f, 1.0f };<\/pre>\n<p>\uc704\uc758 \ubc30\uc5f4\uc740 \uc548\uac1c\uc758 \uc0c9\uc0c1\uc744 \uc9c0\uc815\ud558\ub370 \uc4f0\uc778\ub2e4. \uc548\uac1c\uc5d0\ub3c4 \ube68\uac04 \uc548\uac1c, \ub178\ub780 \uc548\uac1c, \ud30c\ub780 \uc548\uac1c \ub4f1 \ucc22\uc5b4\uc9c4 \uc548\uac1c\ub9cc \ube7c\uace0 \uc5b4\ub5a4 \uc0c9\uc758 \uc548\uac1c\uac00 \uac00\ub2a5\ud558\ub2e4. ^^;;<P>\ub2e4\uc74c\uc73c\ub85c initGL\uc5d0\uc11c \uc218\uc815\ud574\uc57c\ud560 \uac83\uc774 \uc788\ub294\ub370 \uc774\uac83\uc740 \ubc30\uacbd\uc0c9\uc744 \ub2e4\ub974\uac8c \uc9c0\uc815\ud558\ub294 \uac83\uc774\ub2e4. \uc6b0\ub9ac\uac00 \uc9c0\uae08\uae4c\uc9c0 \ubc30\uacbd\uc0c9\uc744 \uc644\uc804\ud55c \uac80\uc815\uc0c9\uc73c\ub85c \uc0ac\uc6a9\ud588\uc74c\uc744 \uc54c\uace0 \uc788\ub294\uac00? \uc989 \ub2e4\uc74c\uc758 \ucf54\ub4dc\uac00 \uc774\uc640\uac19\uc740 \uc77c\uc744 \ucc98\ub9ac\ud588\uc5c8\ub2e4.<\/P><\/p>\n<pre>glClearColor(0.0f, 0.0f, 0.0f, 1.0f);<\/pre>\n<p>\uadf8\ub7ec\ub098 \uc6b0\ub9ac\ub294 \uc9c0\uae08 \uc548\uac1c\ub97c \ubcf4\ub2e4 \ub9ac\uc5bc\ud558\uac8c \ub098\ud0c0\ub0b4\uae30 \uc704\ud574\uc11c \ubc30\uacbd\uc0c9 \uc870\ucc28\ub3c4 \uc548\uac1c\uc758 \uc0c9\uc5d0 \ub9c8\ucdb0\uc57c \ud55c\ub2e4. \ub2e4\uc74c\uacfc \uac19\uc774 \ubcc0\uacbd\ud558\uc790.<\/p>\n<pre>glClearColor(1.0f, 1.0f, 1.0f, 1.0f);<\/pre>\n<p>\ub2e4\uc74c\uc5d0 initGL\uc5d0\uc11c \ucd94\uac00\ud574\uc57c\ud560 \uac83\uc740 \uc548\uac1c\uc5d0 \ub300\ud55c \uc124\uc815\uac12\ub4e4\uc774\ub2e4. \ub2e4\uc74c\uc758 \ucf54\ub4dc\ub97c \ucd94\uac00\ud558\uc790.<\/p>\n<pre>glFogi(GL_FOG_MODE, GL_LINEAR); \/\/ <1>\r\nglFogfv(GL_FOG_COLOR, fogColor); \/\/ <2>\r\nglFogf(GL_FOG_DENSITY, 0.3f); \/\/ <3>\r\nglHint(GL_FOG_HINT, GL_NICEST); \/\/ <4>\r\nglFogf(GL_FOG_START, 5.5f); \/\/ <5>\r\nglFogf(GL_FOG_END, 7.0f); \/\/ <6>\r\nglEnable(GL_FOG); \/\/ <7><\/pre>\n<p><1>\ubc88\uc740 \uc548\uac1c \ubaa8\ub4dc\ub97c GL_LINEAR\ub85c \ud574\uc900\ub2e4\ub294 \uac83\uc774\ub2e4. \uc55e\uc5d0\uc11c \uc6b0\ub9ac\ub294 GL_LINEAR\uc640 GL_EXP, GL_EXP2\uc640 \uac19\uc740 \uc548\uac1c\uc758 \uc885\ub958\uac00 \uc788\ub2e4\ub294 \uac83\uc5d0 \ub300\ud574 \uc54c\uace0 \uc788\ub2e4.<br \/>\n<P><2>\ubc88\uc740 \uc548\uac1c\uc758 \uc0c9\uc744 \uc9c0\uc815\ud558\ub294 \ucf54\ub4dc\uc774\ub2e4.<\/P><P><3>\ubc88\uc740 \uc548\uac1c\uc758 \ubc00\ub3c4\ub97c \uc9c0\uc815\ud558\ub294 \uac83\uc778\ub370 GL_EXP, GL_EXP2\uc5d0\uc11c\ub9cc \uc0ac\uc6a9\ub418\ub294 \uac12\uc774\ub2e4.<\/P><P><4>\ubc88\uc740 \uc548\uac1c\uc5d0 \ub300\ud55c \uc5f0\ucd9c\uc5d0 \uc788\uc5b4\uc11c \uac00\uc7a5 \uba4b\uc788\uac8c \ubcf4\uc774\ub3c4\ub85d OpenGL\uc5d0\uac8c \uc2e0\uacbd\uc368 \ub2ec\ub77c\ub294 \uc694\uccad\uc774\ub2e4.<\/P><P><5>\ubc88\uc740 GL_LINEAR\uc5d0\uc11c\ub9cc \uc801\uc6a9\ub418\ub294 \uac83\uc73c\ub85c\uc368 \uc548\uac1c\uac00 \ub098\ud0c0\ub098\uae30 \uc2dc\uc791\ud558\ub294 \uae4a\uc774(Z\ucd95 \uac12) \uac70\ub9ac\ub97c \uc124\uc815\ud558\ub294 \uac83\uc774\ub2e4.<\/P><P><6>\ubc88\uc740 GL_LINEAR\uc5d0\uc11c\ub9cc \uc801\uc6a9\ub418\ub294 \uac83\uc73c\ub85c\uc368 \uc548\uac1c\uac00 \uc644\uc804\uc774 \ub4e4\uc774\uc6cc\uc838\uc11c \ubb3c\uccb4\uac00 \ub354\uc774\uc0c1 \ubcf4\uc774\uc9c0 \uc54a\uc744 \uc815\ub3c4\uac00 \ub418\ub294 \uae4a\uc774(Z\ucd95 \uac12) \uac70\ub9ac\ub97c \uc124\uc815\ud558\ub294 \uac83\uc774\ub2e4.<\/P><P><7>\ubc88\uc740 \uc774\ub807\uac8c \uc124\uc815\ud55c \uac12\ub4e4\uc744 \uc774\uc6a9\ud574\uc11c \uc548\uac1c \ud6a8\uacfc\ub97c \uc0ac\uc6a9\ud558\uaca0\ub2e4\ub294 \uac83\uc774\ub2e4.<\/P><P>\ub05d\uc774\ub2e4! ^^<\/P><P>\uc774\ub807\uac8c \ud574\uc8fc\uba74 \uc548\uac1c\ub294 \uc6b0\ub9ac\uac00 \uc6d0\ud558\ub294 \ubaa8\uc2b5\uc73c\ub85c \ub098\ud0c0\ub0a0 \uac83\uc774\ub2e4. \uc544\ub798\ub294 \uadf8 \uacb0\uacfc \ud654\uba74\uc774\ub2e4.<\/P><br \/>\n<P><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.gisdeveloper.co.kr\/wp-content\/uploads\/1\/1182327040.jpg\" class=\"aligncenter\" width=\"316\" height=\"292\" alt=\"\uc0ac\uc6a9\uc790 \uc0bd\uc785 \uc774\ubbf8\uc9c0\" \/><br \/>\n<DIV style=\"TEXT-ALIGN: center\"><GL_LINEAR><\/DIV><br \/>\n<P>\uc5b4\ub5a4\uac00? \ucc28\ub77c\ub9ac \uc548\uac1c\ub77c\uae30 \ubcf4\ub2e4 \ub208\uc18d\uc5d0 \ud30c\ubb4d\uce5c \uac83 \uac19\uc9c0 \uc54a\uc740\uac00? ^^<\/P><P>\uc548\uac1c \ud6a8\uacfc\uc5d0 \ub300\ud574\uc11c \ub9c8\uce58\uae30 \uc804\uc5d0 \uc774\uc81c GL_EXP\ubaa8\ub4dc\uc758 \uc548\uac1c\uc5d0 \ub300\ud574\uc11c \uc54c\uc544\ubcf4\uc790. GL_EXP \ubaa8\ub4dc\ub97c \uc0ac\uc6a9\ud558\uae30 \uc704\ud574\uc11c \ubcc0\uacbd\ud574\uc57c \ucf54\ub4dc\ub294 \uc704\uc5d0\uc11c \uc124\ud3b4\ubcf8 \ucf54\ub4dc\uc911\uc5d0 <1>\ubc88 \ucf54\ub4dc\uc758 \ub450\ubc88\uc7ac \uc778\uc790\ub97c GL_EXP\ub85c \ubcc0\uacbd\ud558\uace0 <3>\ubc88 \ucf54\ub4dc\uc5d0\uc11c \uc801\uc808\ud55c \ubc00\ub3c4\uac12\uc744 \uc124\uc815\ud558\uae30\ub9cc \ud558\uba74\ub41c\ub2e4. \uadf8\ub807\uac8c \uc124\uc815\ud588\uc744\ub54c \ub098\ud0c0\ub098\ub294 \uacb0\uacfc \ud654\uba74\uc740 \ub2e4\uc74c\uacfc \uac19\ub2e4.<\/P><br \/>\n<P><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.gisdeveloper.co.kr\/wp-content\/uploads\/1\/1008255277.jpg\" class=\"aligncenter\" width=\"333\" height=\"289\" alt=\"\uc0ac\uc6a9\uc790 \uc0bd\uc785 \uc774\ubbf8\uc9c0\" \/><br \/>\n<DIV style=\"TEXT-ALIGN: center\"><GL_EXP><\/DIV><br \/>\n<P>\ub9c8\uce58 \uad6c\ub984\uc18d\uc5d0 \ud30c\ubb4d\ud78c \uac83 \uac19\ub2e4. \ucc38\uace0\ub85c GL_EXP2\ub294 GL_EXP\ubcf4\ub2e4 \uac19\uc740 \ubc00\ub3c4\ub77c\uace0 \ud574\ub3c4 \ub354 \uc9d9\uc740 \uc548\uac1c \ud6a8\uacfc\ub97c \ub098\ud0c0\ub0b8\ub2e4.<\/P><P>\uc790!! \uc774\ub807\uac8c \ud574\uc11c \uc548\uac1c\uc5d0 \ub300\ud55c \uac83\ub4e4\uc744 \ub9c8\uce5c\ub2e4.<\/P><\/p>\n<p style='text-align:center'><a href=\"http:\/\/www.gisdeveloper.co.kr\/wp-content\/uploads\/1\/1120349692.zip\"><img width='64' src='\/images\/download.svg' \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\uc774\uc7a5\uc5d0\uc11c\ub294 OpenGL\uc5d0\uc11c \uc548\uac1c \ud6a8\uacfc\ub97c \uc5bb\ub294 \uac83\uc5d0 \ub300\ud574\uc11c \uc54c\uc544\ubcf4\uc790. OpenGL\uc740 \uc548\uac1c \ud6a8\uacfc\ub97c \uc5bb\uae30 \uc704\ud574 \ud2b9\ubcc4\ud55c \ud2b8\ub9ad\uc744 \uc0ac\uc6a9\ud574\uc57c\ud558\ub294 \uac83\uc774 \uc544\ub2c8\ub77c \uc548\uac1c \ud6a8\uacfc\ub97c \uc704\ud55c API\ub97c \uc81c\uacf5\ud568\uc73c\ub85c\uc368 \uc27d\uac8c \uc548\uac1c \ud6a8\uacfc\ub97c \uc5bb\uc744 \uc218 \uc788\ub2e4.OpenGL\uc5d0\uc11c \uc81c\uacf5\ud558\ub294 \uc548\uac1c\uc758 \uc885\ub958\ub294 3\uac00\uc9c0\uac00 \uc788\ub294\ub370 \uc0ac\uc2e4 2\uac00\uc9c0\ub85c \uad6c\ubd84\ub41c\ub2e4. \ud558\ub098\ub294 GL_EXP\uc640 GL_EXP2\uc774\uace0 \ub2e4\ub978 \ud558\ub098\ub294 GL_LINEAR\uc774\ub2e4. GL_EXP\uc640 GL_EXP2\ub294 \ubc00\ub3c4\ub77c\ub294 \uac12\uc744 \uc774\uc6a9\ud574\uc11c \ud654\uba74 \uc804\uccb4\uc5d0 \uc9c0\uc815\ub41c \uc548\uac1c\uc758 \uc0c9\uc73c\ub85c \ub9c8\uce58 \uc790\uc6b1\ud55c &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/www.gisdeveloper.co.kr\/?p=49\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;[OpenGL Tutorial] Fog&#8221;<\/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":[4],"tags":[3],"class_list":["post-49","post","type-post","status-publish","format-standard","hentry","category-opengl","tag-opengl"],"_links":{"self":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/49","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=49"}],"version-history":[{"count":3,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/49\/revisions"}],"predecessor-version":[{"id":3825,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/49\/revisions\/3825"}],"wp:attachment":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=49"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=49"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=49"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}