{"id":15702,"date":"2025-02-06T10:48:23","date_gmt":"2025-02-06T01:48:23","guid":{"rendered":"http:\/\/www.gisdeveloper.co.kr\/?p=15702"},"modified":"2025-02-24T12:24:40","modified_gmt":"2025-02-24T03:24:40","slug":"glsl%ec%9d%98-mat4-%ed%83%80%ec%9e%85%ec%97%90-%eb%8c%80%ed%95%9c-%ec%a0%95%eb%a6%ac","status":"publish","type":"post","link":"http:\/\/www.gisdeveloper.co.kr\/?p=15702","title":{"rendered":"GLSL\uc758 mat4 \ud0c0\uc785\uc5d0 \ub300\ud55c \uc815\ub9ac"},"content":{"rendered":"<p>mat4\ub294 4&#215;4 \ud589\ub82c\uc785\ub2c8\ub2e4. \uc5f4\uc744 \uc6b0\uc120(Column major) \uc21c\uc11c\ub85c \ud574\uc11c \uac01 \uc694\uc18c\uac00 \uc800\uc7a5\ub429\ub2c8\ub2e4. \uc544\ub798\ucc98\ub7fc\uc694.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.gisdeveloper.co.kr\/wp-content\/uploads\/2025\/02\/\uc2a4\ud06c\ub9b0\uc0f7-2025-02-06-104737.png\" alt=\"\" width=\"398\" height=\"351\" class=\"aligncenter size-full wp-image-15703\" \/><\/p>\n<p>\uadf8\ub798\uc11c \ud589\ub82c\uc758 \uccab\ubc88\uc9f8 \uc5f4\uacfc \uc138\ubc88\uc9f8 \uc5f4\uc740 \ub2e4\uc74c\ucc98\ub7fc vec4 \ub85c \uc5bb\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"glsl\">\r\nvec4 col1 = m[0];\r\nvec4 col4 = m[3];\r\n<\/pre>\n<p>\ubc18\uba74 \uccab\ubc88\uc9f8 \ud589\uacfc \uc138\ubc88\uc9f8 \ud589\uc740 \ub2e4\uc74c\ucc98\ub7fc \uc5bb\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"glsl\">\r\nvec4 row1 = vec4(m[0][0], m[1][0], m[2][0], m[3][0]);\r\nvec4 row4 = vec4(m[0][3], m[1][3], m[2][3], m[3][3]);\r\n<\/pre>\n<p>\ud589\ub82c\uc758 \ud2b9\uc815 \uc694\uc18c\uc758 \uc811\uadfc\uc740, \uc608\ub97c\ub4e4\uc5b4 3\ubc88\uc9f8 \uc5f4\uc758 4\ubc88\uc9f8 \ud589 \uc694\uc18c\ub294 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"glsl\">\r\nfloat e = m[2][3];\r\n<\/pre>\n<p>\ud589\ub82c\uc758 \uc5f0\uc0b0\uc740 \ubca1\ud130\uc758 \uc218\ud559\uc801\uc778 \uacf1\uc73c\ub85c \ub9ce\uc774 \uc0ac\uc6a9\ub418\ub294\ub370 \uc77c\ubc18\uc801\uc73c\ub85c\ub294 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"glsl\">\r\nvec4 v = ...;\r\nmat4 m = ...;\r\nvec4 t = m * v;\r\n<\/pre>\n<p>\ud589\ub82c\uacfc \ubca1\ud130\uc758 \uacf1 \uc21c\uc11c\ub97c \ub2e4\uc74c\ucc98\ub7fc \ubc14\uafc0 \uc218 \uc788\ub294\ub370, \uadf8 \uacb0\uacfc\ub294 \uc704\uc640 \ub2e4\ub985\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"glsl\">\r\nvec4 t2 = v * m;\r\n<\/pre>\n<p>\uc704\ucc98\ub7fc \ubca1\ud130\uc5d0 \ud589\ub82c\uc744 \uacf1\ud558\uba74 \ud589\ub82c\uc744 \uc804\uce58\uc2dc\ud0a8 \uac83\uc73c\ub85c\uc368, \uc704\uc758 \ucf54\ub4dc\ub294 \uc544\ub798\uc758 \ucf54\ub4dc\uc640 \ub3d9\uc77c\ud569\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"glsl\">\r\nvec4 t2 = traverse(m) * v;\r\n<\/pre>\n<p><P>\ud589\ub82c\uc758 \uac01 \uc694\uc18c\ubcc4 \uacf1\uc740 matrixCompMult\uc774\uba70 \ud568\uc218 \uc774\ub984\uc5d0\uc11c \uc54c \uc218 \uc788\ub4ef\uc774 \uac70\uc758 \uc0ac\uc6a9\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.<\/P><\/p>\n<p>\ub9c8\uc9c0\ub9c9\uc73c\ub85c \uc5ed\ud589\ub82c\uc744 \uad6c\ud558\ub294 \ud568\uc218\ub294 inverse \uc785\ub2c8\ub2e4.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>mat4\ub294 4&#215;4 \ud589\ub82c\uc785\ub2c8\ub2e4. \uc5f4\uc744 \uc6b0\uc120(Column major) \uc21c\uc11c\ub85c \ud574\uc11c \uac01 \uc694\uc18c\uac00 \uc800\uc7a5\ub429\ub2c8\ub2e4. \uc544\ub798\ucc98\ub7fc\uc694. \uadf8\ub798\uc11c \ud589\ub82c\uc758 \uccab\ubc88\uc9f8 \uc5f4\uacfc \uc138\ubc88\uc9f8 \uc5f4\uc740 \ub2e4\uc74c\ucc98\ub7fc vec4 \ub85c \uc5bb\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4. vec4 col1 = m[0]; vec4 col4 = m[3]; \ubc18\uba74 \uccab\ubc88\uc9f8 \ud589\uacfc \uc138\ubc88\uc9f8 \ud589\uc740 \ub2e4\uc74c\ucc98\ub7fc \uc5bb\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4. vec4 row1 = vec4(m[0][0], m[1][0], m[2][0], m[3][0]); vec4 row4 = vec4(m[0][3], m[1][3], m[2][3], m[3][3]); &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/www.gisdeveloper.co.kr\/?p=15702\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;GLSL\uc758 mat4 \ud0c0\uc785\uc5d0 \ub300\ud55c \uc815\ub9ac&#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":[152,153],"tags":[],"class_list":["post-15702","post","type-post","status-publish","format-standard","hentry","category-glsl","category-shader"],"_links":{"self":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/15702","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=15702"}],"version-history":[{"count":5,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/15702\/revisions"}],"predecessor-version":[{"id":15708,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/15702\/revisions\/15708"}],"wp:attachment":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=15702"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=15702"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=15702"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}