{"id":16453,"date":"2025-12-02T17:12:53","date_gmt":"2025-12-02T08:12:53","guid":{"rendered":"http:\/\/www.gisdeveloper.co.kr\/?p=16453"},"modified":"2026-01-01T15:41:53","modified_gmt":"2026-01-01T06:41:53","slug":"%ec%a5%94%ec%9e%a5-%ec%9d%b4-%ec%bd%94%eb%93%9c-%ed%82%b5","status":"publish","type":"post","link":"http:\/\/www.gisdeveloper.co.kr\/?p=16453","title":{"rendered":"\uc954\uc7a5, \uc774 \ucf54\ub4dc \ud0b5 .. (\uae30\uc800 \ubca1\ud130\ub97c \ud1b5\ud55c \ud68c\uc804)"},"content":{"rendered":"<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"js\">\r\n  ...\r\n\r\n  const zaxis = dir.negate().normalize().toConst();\r\n  const xaxis = cross(vec3(0, 1, 0), zaxis).normalize().toConst();\r\n  const yaxis = cross(zaxis, xaxis).toConst();\r\n\r\n  const mat = mat3(\r\n    xaxis.x, yaxis.x, zaxis.x,\r\n    xaxis.y, yaxis.y, zaxis.y,\r\n    xaxis.z, yaxis.z, zaxis.z\r\n  ).toConst();\r\n\r\n  const finalVert = modelWorldMatrix.mul(mat.mul(positionLocal))\r\n    .add(positionStorage.element(instanceID)).toConst();\r\n\r\n  return cameraProjectionMatrix.mul(cameraViewMatrix).mul(finalVert);\r\n}\r\n<\/pre>\n<p>\uc544\ub798\ub294 dir(forward; \ubc14\ub77c\ubcf4\ub294 \ubc29\ud5a5 \ubca1\ud130), up(\u201c\uc704\ucabd\u201d\uc744 \uc815\uc758\ud558\ub294 \uae30\uc900 \ubca1\ud130)\ub97c \uc54c\uace0 \uc788\uc744\ub54c, \ub2e8\uc704\ubca1\ud130\ub77c\uace0 \ud560\ub54c \ud68c\uc804 \ud589\ub82c\uc744 \uc5bb\ub294 \ud568\uc218\uc774\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"glsl\">\r\nmat3 lookAt(vec3 dir, vec3 up) {\r\n  vec3 right = cross(dir, up);\r\n  true_up = cross(right, dir);\r\n  return mat(right, true_up, -dir);\r\n}\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>&#8230; const zaxis = dir.negate().normalize().toConst(); const xaxis = cross(vec3(0, 1, 0), zaxis).normalize().toConst(); const yaxis = cross(zaxis, xaxis).toConst(); const mat = mat3( xaxis.x, yaxis.x, zaxis.x, xaxis.y, yaxis.y, zaxis.y, xaxis.z, yaxis.z, zaxis.z ).toConst(); const finalVert = modelWorldMatrix.mul(mat.mul(positionLocal)) .add(positionStorage.element(instanceID)).toConst(); return cameraProjectionMatrix.mul(cameraViewMatrix).mul(finalVert); } \uc544\ub798\ub294 dir(forward; \ubc14\ub77c\ubcf4\ub294 \ubc29\ud5a5 \ubca1\ud130), up(\u201c\uc704\ucabd\u201d\uc744 \uc815\uc758\ud558\ub294 \uae30\uc900 \ubca1\ud130)\ub97c \uc54c\uace0 \uc788\uc744\ub54c, \ub2e8\uc704\ubca1\ud130\ub77c\uace0 \ud560\ub54c \ud68c\uc804 \ud589\ub82c\uc744 \uc5bb\ub294 &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/www.gisdeveloper.co.kr\/?p=16453\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;\uc954\uc7a5, \uc774 \ucf54\ub4dc \ud0b5 .. (\uae30\uc800 \ubca1\ud130\ub97c \ud1b5\ud55c \ud68c\uc804)&#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":[1],"tags":[],"class_list":["post-16453","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/16453","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=16453"}],"version-history":[{"count":6,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/16453\/revisions"}],"predecessor-version":[{"id":16457,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/16453\/revisions\/16457"}],"wp:attachment":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=16453"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=16453"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=16453"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}