목록전체 글 (140)
Graphics Programming
중간값 정리 - 위키피디아http://ko.wikipedia.org/wiki/%EC%A4%91%EA%B0%84%EA%B0%92_%EC%A0%95%EB%A6%AC 뉴턴법으로 어떻게 구해보려고 쇼를 하다가 미적분학 강의 때 중간값 정리 보고 '아.. -_-' 하며 구현했다. 함수 f:R->R 이 해를 구하려는 구간 내에서 연속이다고 가정한다. 그러면 f(a)와 f(b)의 부호가 다를 경우 그 사이에 f(c) = 0인 지점이 반드시 있는데 c가 바로 방정식 f(x) = 0의 해다. 그러니 정의역에서 해를 구할 구간을 적당히 잡고 적당한 간격으로 함숫값을 추출해서 바로 전에 추출한 함숫값과 부호가 다르면 그 구간에서 이진 분할을 하든 열 조각으로 쪼개든 하여 범위를 점점 좁혀나가면 해의 근사값을 얻을 수 있다...
램버트의 조명 모형을 쓰려면 다음을 계산해야 하는데 D = max(-dotProduct(N, L), 0) * C (N은 표면의 단위 법선 벡터, L은 빛의 단위 방향 벡터, C는 빛의 rgb값) AGAL 명령에는 max가 없는 줄 알았다. 그래서 이런 식으로 계산해야 하는데 d = -dotProduct(N, L) if(d = c이면 a에 1을 넣고, 그렇지 않으면 a에 0을 넣는다) 다음과 같이 픽셀 셰이더를 작성하여 램버트의 조명 모형을 구현할 수 있다. /********************** v0: 표면의 법선 벡터 (정점 셰이더에서 넘어왔기 때문에 단위 길이가 아님) fc0..
stage3d study - shadow on plane - wonderfl build flash online A: 공간상의 점 L: 단위 빛 벡터 (무한히 먼 태양에서 오는 빛처럼 방향은 일정하다고 가정) n: 평면의 법선 벡터 r: 평면이 포함하는 한 점 A에서 L의 방향을 따라 진행했을 때 평면과 교차하는 점, 즉 그림자가 드리우는 지점을 찾는 것이 목표다. - 그림의 반직선을 A + tL(t는 실수, t ≥ 0)로 나타낸다. - 평면이 포함하는 임의의 점을 x라 하면 n·x = n·r 이 성립한다. 내적 기호가 안 보임 x에 A + tL을 대입하고 t에 대해 정리하면 이 나온다. 손으로 계산하거나 CPU를 쓸 때는 t를 구해서 A + tL에 대입하면 그림자 위치를 구할 수 있지만 GPU를 쓰기 때..
lambertW 함수 설명 - Wolfram http://mathworld.wolfram.com/LambertW-Function.html - Wikipedia http://en.wikipedia.org/wiki/Lambert_W_function - 네이버 baek449 http://blog.naver.com/baek449/120102271153 급수 전개로 구현하려고 했는데 오차가 너무 심해서 뉴튼법을 썼다. package codeonwort.math { /** * 램버트W 함수 (뉴튼법을 이용하여 근사치 계산) */ public function lambertW(x:Number, iteration:uint=10):Number { var soln:Number = x var exp_soln:Number fo..
원문 http://www.adobe.com/devnet/flashplayer/articles/perspective-projection.html 도입 이 튜토리얼에서는 원근법을 배웁니다. 원근법은 플래시 프로젝트에서 3D 렌더링을 사용할 때 기초가 되는 주제입니다. 이번에는 Stage3D API를 사용하여 원근이 있는 삼차원 공간을 그리는 방법을 알아보겠습니다. 이 튜토리얼은 Stage3D 작업에 관한 시리즈의 일부로 삼각형 그리기를 설명하는 이전 튜토리얼의 정보를 기초로 합니다. 원근법을 적용하여 3D 장면을 그림으로써 이전의 견본을 더 높은 수준으로 끌어올리게 될 것입니다. 원근 이해하기 현실에서 우리는 사물을 "원근법"에 따라 봅니다. 원근은 여러분에게 멀리 있는 물체가 가까이 있는 물체보다 더 작게..
이 글에서는 3차원의 경우 관성 모멘트를 구하는 방법을 설명하고 이로부터 관성 텐서를 도출한다. 관성 모멘트의 물리적 의미는 학부 수준의 일반물리학 교재에서 찾을 수 있고 나는 수학적인 계산만 다룰 것이다. 원점을 지나는 직선 L을 O + tD로 표시하자. O는 원점, t는 실수, D는 단위 방향 벡터다. 이 축에 대한 한 입자의 관성 모멘트는 입자의 질량 m, 원점에 대한 상대 위치 r = (x, y, z)일 때 다음과 같다. (여기서 원점은 (0, 0, 0)을 말하는 것이 아니며 직선과 입자의 위치를 나타내기 위한 기준점을 뜻한다. 그러니까 원점이 물체의 질량 중심이여도 문제될 것은 없다) 한 축에 대한 입자의 관성 모멘트는 (입자의 질량) x (입자에서 축까지의 거리의 제곱)인데 위 식에 쓴 거리의..
다음 글을 번역한 것입니다. http://www.adobe.com/devnet/flashplayer/articles/hello-triangle.html Requirements Prerequisite knowledge Familiarity working with the Stage3D API and a basic understanding of how it is structured is required. Basic knowledge of Vertex and Fragment Shaders, and the AGAL shading language is also recommended. Before completing this tutorial, be sure to follow along with the previous..