{"id":456,"date":"2007-08-28T18:44:00","date_gmt":"2007-08-28T18:44:00","guid":{"rendered":"http:\/\/www.gisdeveloper.co.kr\/?p=456"},"modified":"2017-01-29T11:13:27","modified_gmt":"2017-01-29T02:13:27","slug":"opengl-shader-15","status":"publish","type":"post","link":"http:\/\/www.gisdeveloper.co.kr\/?p=456","title":{"rendered":"OpenGL Shader &#8211; 15"},"content":{"rendered":"<div align=\"center\"><strong>GLSL\uc758 \uc81c\uc5b4\ubb38\uacfc \ud568\uc218<\/strong><\/div>\n<p><strong>\uc81c\uc5b4\ubb38<\/strong><br \/>\n\uc81c\uc5b4\ubb38\uc740 C\uc5b8\uc5b4\uc640 \ub9e4\uc6b0 \ube44\uc2b7\ud558\ub2e4. if-else, for, do-while\ubb38\uacfc \uac19\uc740 \uc870\uac74\ubb38\uacfc \ubc18\ubcf5\ubb38\uc774 \uc788\ub2e4.<\/p>\n<pre><code class=\"html\">if (bool expression)\r\n    ...\r\nelse\r\n    ...\r\n\r\nfor(initialization; bool expression; loop expression)\r\n    ...\r\n\r\nwhile(bool expression)\r\n    ...\r\n\r\ndo\r\n    ...\r\nwhile(bool expression)<\/code><\/pre>\n<p>GLSL\uc758 \uc2a4\ud399\uc5d0\ub294 \uc704\uc758 \uc81c\uc5b4\ubb38\ub4e4\uc774 \uc0ac\uc6a9\uac00\ub2a5\ud558\ub2e4\uace0 \ub418\uc5b4\uc788\uc9c0\ub9cc, if \ubb38\uc740 \uc694\uc998\uc758 \ud558\ub4dc\uc6e8\uc5b4\uc5d0\uc11c\ub9cc \uc9c0\uc6d0\ub418\ub294 \uacbd\uc6b0\uac00 \ub9ce\ub2e4.<\/p>\n<p>\uc81c\uc5b4\ubb38\uacfc \uad00\ub828\ub41c \uba87\uac1c\uc758 \ud568\uc218\uac00 \uc815\uc758\ub418\uc5b4 \uc788\ub294\ub370,<\/p>\n<ul>\n<li>continue &#8211; \ubc18\ubcf5\ubb38\uc5d0\uc11c \uc0ac\uc6a9 \uac00\ub2a5\ud558\uba70, \ubc14\ub85c \ub2e4\uc74c \ubc18\ubcf5\uc758 \ub2e8\uacc4\ub85c \uac04\ub2e4.<\/li>\n<li>break &#8211; \ubc18\ubcf5\ubb38\uc5d0\uc11c \uc0ac\uc6a9 \uac00\ub2a5\ud558\uba70, \ubc18\ubcf5\ubb38\uc744 \uc885\ub8cc\ud55c\ub2e4.<\/li>\n<li>discard<\/li>\n<\/ul>\n<p>discard \ud0a4\uc6cc\ub4dc\ub294 \ud504\ub808\uadf8\uba3c\ud2b8 \uc250\uc774\ub354\uc5d0\uc11c\ub9cc \uc0ac\uc6a9\ud560 \uc218 \uc788\ub2e4. \uc774 \ud0a4\uc6cc\ub4dc\uac00 \uc2e4\ud589\ub418\uba74 \ud604\uc7ac \ud504\ub808\uadf8\uba3c\ud2b8 \uc250\uc774\ub354\ub294 \uc885\ub8cc\ub418\uba70, \ud504\ub808\uc784\ubc84\ud37c\ub098 \uae4a\uc774 \ubc84\ud37c\uc5d0 \uc544\ubb34\ub7f0 \ub0b4\uc6a9\ub3c4 \uc4f0\uc9c0 \uc54a\ub294\ub2e4.<\/p>\n<p><strong>\ud568\uc218<\/strong><br \/>\nC\uc5d0\uc11c\ucc98\ub7fc, \uc250\uc774\ub354\ub294 \ud568\uc218\ub85c \uc815\uc758\ub41c\ub2e4. \uc250\uc774\ub354\ub294 \uc544\ub798\uc640 \uac19\uc740 \ud615\ud0dc\uc758 \ucd5c\uc18c\ud55c \ud558\ub098\uc758 main \ud568\uc218\ub97c \uac00\uc838\uc57c \ud55c\ub2e4.<\/p>\n<pre><code class=\"html\">void main()<\/code><\/pre>\n<p>\uc0ac\uc6a9\uc790 \ud568\uc218\ub3c4 \uc815\uc758\ud560 \uc218 \uc788\ub2e4. C\uc5d0\uc11c\ucc98\ub7fc, \ud568\uc218\ub294 \uac12\uc744 \ubc18\ud658\ud560 \uc218 \uc788\ub294\ub370, return \ubb38\uc744 \uc368\uc11c \uacb0\uacfc\uac12\uc744 \ubc18\ud658\ud55c\ub2e4. \ubb3c\ub860 \ud568\uc218\ub294 void \ub97c \uc368\uc11c \ubc18\ud658\ud558\uc9c0 \uc54a\uc744 \uc218 \uc788\ub2e4. \ubc18\ud658 \ud0c0\uc785\uc740 GLSL\uc5d0\uc11c \uc81c\uacf5\ud558\ub294 \uc5b4\ub5a4 \ud0c0\uc785\uc774\ub4e0\uc9c0 \uac00\ub2a5\ud558\uc9c0\ub9cc, \ubc30\uc5f4\uc740 \ub420 \uc218 \uc5c6\ub2e4.<\/p>\n<p>\ud568\uc218\uc758 \uc778\uc790\ub294 \ub2e4\uc74c \uc9c0\uc815\uc790\uc640 \ud568\uaed8 \uc4f8 \uc218 \uc788\ub2e4.<\/p>\n<ul>\n<li>in &#8211; \uc624\uc9c1 \uc785\ub825 \uc778\uc790\ub85c\uc368 \uc0ac\uc6a9\ub428<\/li>\n<li>out &#8211; \uc5b4\ub5a4 \uac12\uc744 \ubc18\ud658\ud558\ub294 \uc6a9\ub3c4\ub85c \uc0ac\uc6a9\ub428. \ud568\uc218\uc758 \uacb0\uacfc\ub97c \ubcf4\ub0b4\uae30 \uc704\ud55c \ub610 \ub2e4\ub978 \ubc29\ubc95<\/li>\n<li>inout &#8211; \uc785\ub825 \ubc0f \uac12 \ubc18\ud658\uc758 \ub450\uac00\uc9c0 \uc6a9\ub3c4\ub85c \uc0ac\uc6a9\ub428<\/li>\n<\/ul>\n<p>\uc778\uc790\uc5d0 \uc9c0\uc815\uc790\uac00 \uc5c6\ub2e4\uba74, \uae30\ubcf8\uc801\uc73c\ub85c in \uc774\ub2e4.<\/p>\n<p>\ub9c8\uc9c0\ub9c9\uc73c\ub85c \uba87\uac00\uc9c0 \uc8fc\uc758\ud560 \uc810\uc774 \uc788\ub294\ub370,<\/p>\n<ol>\n<li>\ud568\uc218\ub294 \uc778\uc790\ub97c \ub2e4\ub974\uac8c \ud574\uc11c \uc624\ubc84\ub85c\ub4dc\ub420 \uc218 \uc788\ub2e4.<\/li>\n<li>GLSL \uc2a4\ud399\uc0c1 \uc7ac\uadc0\ud638\ucd9c\uc740 \uac00\ub2a5\ud558\uc9c0 \uc54a\ub2e4.<\/li>\n<\/ol>\n<p>\ub9c8\uc9c0\ub9c9\uc73c\ub85c \ud568\uc218\uc5d0 \ub300\ud55c \ud558\ub098\uc758 \uc608\ub97c \uc81c\uc2dc\ud558\uaca0\ub2e4.<\/p>\n<pre><code class=\"html\">vec4 toonify(in float intensity) {\r\n    vec4 color;\r\n\r\n    if(intensity > 0.98)\r\n        color = vec4(0.8, 0.8, 0.8, 1.0);\r\n    else if(intensity > 0.5)\r\n        color = vec4(0.5)\r\n    else if(intensity > 0.25)\r\n        color = vec4(0.2, 0.2, 0.4, 1.0);\r\n    else\r\n        color = vec4(0.1, 0.1, 0.1, 1.0);\r\n\r\n    return(color);\r\n}<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>GLSL\uc758 \uc81c\uc5b4\ubb38\uacfc \ud568\uc218 \uc81c\uc5b4\ubb38 \uc81c\uc5b4\ubb38\uc740 C\uc5b8\uc5b4\uc640 \ub9e4\uc6b0 \ube44\uc2b7\ud558\ub2e4. if-else, for, do-while\ubb38\uacfc \uac19\uc740 \uc870\uac74\ubb38\uacfc \ubc18\ubcf5\ubb38\uc774 \uc788\ub2e4. if (bool expression) &#8230; else &#8230; for(initialization; bool expression; loop expression) &#8230; while(bool expression) &#8230; do &#8230; while(bool expression) GLSL\uc758 \uc2a4\ud399\uc5d0\ub294 \uc704\uc758 \uc81c\uc5b4\ubb38\ub4e4\uc774 \uc0ac\uc6a9\uac00\ub2a5\ud558\ub2e4\uace0 \ub418\uc5b4\uc788\uc9c0\ub9cc, if \ubb38\uc740 \uc694\uc998\uc758 \ud558\ub4dc\uc6e8\uc5b4\uc5d0\uc11c\ub9cc \uc9c0\uc6d0\ub418\ub294 \uacbd\uc6b0\uac00 \ub9ce\ub2e4. \uc81c\uc5b4\ubb38\uacfc \uad00\ub828\ub41c \uba87\uac1c\uc758 \ud568\uc218\uac00 \uc815\uc758\ub418\uc5b4 \uc788\ub294\ub370, continue &#8211; &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/www.gisdeveloper.co.kr\/?p=456\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;OpenGL Shader &#8211; 15&#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,25],"class_list":["post-456","post","type-post","status-publish","format-standard","hentry","category-opengl","tag-opengl","tag-shader"],"_links":{"self":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/456","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=456"}],"version-history":[{"count":1,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/456\/revisions"}],"predecessor-version":[{"id":3583,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/456\/revisions\/3583"}],"wp:attachment":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=456"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=456"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=456"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}