블로그

  • Who is.

    황윤하(yoonhada@gmail.com)

    보유기술

    Programming Language

    C#, C++, java, MFC
    Unity, NGUI
    ToolGit, Jenkins

    Tool

    Git, Jenkins

    프로젝트

    포코팡 클라이언트

    NGUI, Line trident, admob, Ironsource, github, jenkins

    클라이언트파트 작업으로
    Unity로 콘텐츠 개발, 라인 플랫폼 대응을 작업.
    아이언 소스로 광고 를 추가 하였고
    추후에 보상형 전면광고 지면 추가를 위해 Admob을 추가.

    CI/CD를 위해 Github, 젠킨스를 사용.

    뇌파분석툴 개발

    데이터 수집, 전처리(Filter)
    분석, ui 작업 (MFC)
    뇌파 분석툴 안드로이드 이식( java, jni)
    뇌파 레이싱 게임 툴 제작(MFC, directX)
    jd펀딩용 앱개발(unity, philips hue, raspberry pi, phthon)

    뇌파 수집, LPF, HPF 처리 DB 저장 툴 제작
    MFC로 수집된 데이터를 시간, 주파수 출력 시켜주는 그래프 툴 작성
    동일한 기능의 안드로이드 앱 개발
    Hue, 라즈베리파이, 안드로이드 앱 Hue제어 블루투스 앱 개발
    레이싱 맵툴 작성

    경력사항

    트리노드(2018.07 ~ 2023.04)
    소소(2013.05 ~ 2018.01)
    옵셋금융시스템즈(2006.05 ~ 2008.09)

    자격사항

    정보처리기사 // 한국산업인력공단 // 2005 06 13

    교육수료

    부산게임아카데미 ( 프로그래밍 과정, 2011. 2 ~ 2011. 12 )
    Bit 아카데미 ( C++ 프로그래밍 과정, 2004. 7 ~ 2004. 8 )

  • Math in Direct3DX, Vector

    http://mormegil.wz.cz/prog/3dref/D3DXmath.htm

    Vector

    D3DXVecNAdd(Out, V1, V2) : N 벡터를 덧셈한다.
    [latex]Out=V_1+V_2[/latex]

    D3DXVecNBaryCentric(Out, V_1, V_2, V_3, f, g) :  N 벡터를 사용해, 중심 좌표의 점을 돌려준다.
    [latex]Out = V_1+ f\cdot (V_2 – V_1) + g\cdot (V_3 – V_1 )[/latex]

    D3DXVecNCatmullRom(Out, V1, V2, V3, V4, s) : Catmull-Rom SPLine 보간을 실행한다.
    [latex]Out=\left(1, s, s^2, s^3\right) \begin{pmatrix} 0&1&0&0\\ -0.5&0&0.5&0\\ 1&-2.5&2&-0.5\\ -0.5&1&-1.5&0.5\\ \end{pmatrix} \begin{pmatrix} V_1\\V_2\\V_3\\V_4\\ \end{pmatrix} [/latex]

    D3DXVecNDot(U, V) : N 벡터의 내적을 계산한다.
    [latex]Result=U \cdot V= \sum_{i}U_{i}V_{i}[/latex]

    D3DXVecNHermite(Out, V1, T1, V2, T2, s) : Hermite SPLine 보간을 실행한다.
    [latex]Out=\left(1, s, s^2, s^3\right) \begin{pmatrix} 1&0&0&0\\ 0&0&1&0\\ -3&3&-2&-1\\ 2&-2&1&1\\ \end{pmatrix} \begin{pmatrix} V_1\\V_2\\T_1\\T_2\\ \end{pmatrix} [/latex]

    D3DXVecNLength(V) : N벡터의 길이를 돌려준다.
    [latex]Result=\left| V\right|=\sqrt{\left(\sum_{i}V^{2}_{i}\right)}[/latex]

    D3DXVecNLengthSq(V) : N벡터의 길이의 2 승을 돌려준다.
    [latex]Result=\left| V\right|=\sum_{i}V^{2}_{i}[/latex]

    D3DXVecNLerp(Out, V1, V2, s) :  N벡터간의 선형 보간을 실행한다.
    [latex]Out = V_1 + s \left( V_2 – V_1 \right)[/latex]

    D3DXVecNMaximize(Out, U, V) : N벡터의 최대치로 구성되는 벡터를 만든다
    [latex]Out_{i}=max\left(U_{i},V_{i}\right)[/latex]

    D3DXVecNMinimize(Out, U, V) : N벡터의 최소치로 구성되는 벡터를 만든다
    [latex]Out_{i}=min\left(U_{i}, V_{i}\right)[/latex]

    D3DXVecNNormalize(Out, V) : 벡터의 정규화한 벡터를 돌려준다.
    [latex]Out=\frac{V}{\left|V\right|}[/latex]

    D3DXVecNScale(Out, V, s)
    [latex]Out=sV[/latex]

    D3DXVecNSubtract(Out, V1, V2)
    [latex]Out = V_1-V_2[/latex]

    2D Vector

    D3DXVec2CCW(U,V) :외적
    [latex]Result = U_xV_y – U_yV_x[/latex]

    D3DXVec2Transform(Out, V, M) : 행렬에 의한 2D 벡터를 변환 한다.
    [latex]a=\left(V_x , V_y , 0, 1\right)[/latex]
    [latex]b=\left(a \times M \right)^T[/latex]
    [latex]Out=\left(b_x , b_y\right)[/latex]

    D3DXVec2TransformCoord(Out, V, M) : w = 1 에 투영된 행렬에 의한 2D벡터 변환
    [latex]a=\left(V_x, V_y, 0, 1\right)[/latex]
    [latex]b=\left(a \times M \right)^T[/latex]
    [latex]Out=\frac{1}{b_w}\left(b_x, b_y\right)[/latex]

    D3DXVec2TransformNormal(Out, V, M) : 행렬에 의해 2D 벡터 법선을 변환 한다.
    [latex]a=\left(V_x, V_y, 0, 0\right)[/latex]
    [latex]b=\left(a\times M\right)^T[/latex]
    [latex]Out=\left(b_x, b_y\right)[/latex]

    3D Vector

    D3DXVec3Cross(Out, V1, V2) : 외적
    [latex]Out = V_1 \times V_2[/latex]

    D3DXVec3Project(Out, V, Viewport, Proj, View, World) : 월드공간 -> 스크린 공간 투영
    [latex]a=\left(V_x, V_y, V_z, 1\right)[/latex]
    [latex]b=a\times World\times View\times Proj[/latex]
    [latex]c=\frac{b}{b_w}[/latex]
    [latex]Out_x=Viewport_X+Viewport_{Width}*\left(1+c_x\right)/2[/latex]
    [latex]Out_y=Viewport_Y+Viewport_{Height}*\left(1-c_y\right)/2[/latex]
    [latex]Out_z=Viewport_{MinZ}+c_z*\left(Viewport_{MaxZ}-Viewport_{MinZ}\right)[/latex]

    D3DXVec3Transform(Out, V, M) : 행렬에 의한 3D 벡터를 변환 한다.
    [latex]a=\left(V_x , V_y , V_z, 1\right)[/latex]
    [latex]b=\left(a \times M \right)^T[/latex]
    [latex]Out=\left(b_x , b_y, b_z\right)[/latex]

    D3DXVec3TransformCoord(Out, V, M) : w = 1 에 투영된 행렬에 의한 3D벡터 변환
    [latex]a=\left(V_x, V_y, V_z, 1\right)[/latex]
    [latex]b=\left(a \times M \right)^T[/latex]
    [latex]Out=\frac{1}{b_w}\left(b_x, b_y, b_z\right)[/latex]

    D3DXVec3TransformNormal(Out, V, M) : 행렬에 의해 3D 벡터 법선을 변환 한다.
    [latex]a=\left(V_x, V_y, V_z, 0\right)[/latex]
    [latex]b=\left(a\times M\right)^T[/latex]
    [latex]Out=\left(b_x, b_y, b_z\right)[/latex]

    D3DXVec3Unproject(Out, V, Viewport, Proj, View, World) : 월드공간 <- 스크린 공간 투영
    [latex]M=\left(World\times View\times Proj\right)^{-1}[/latex]
    [latex]a_x=\left(V_x-Viewport_x\right)*2/ \left(Viewport_{Width}\right)^{-1}[/latex]
    [latex]a_y=1-\left(V_y-Viewport_y\right)*2/Viewport_{Height}[/latex]
    [latex]a_z=\left(V_z-Viewport_{MinZ}\right) / \left(Viewport_{MaxZ}-Viewport_{MinZ}\right)[/latex]
    [latex]a_w=1[/latex]
    [latex]b=\left(a\times M\right)^T[/latex]
    [latex]Out=\frac{1}{b_w}\left(b_x, b_y, bz\right)[/latex]

    4D Vector

    D3DXVec4Cross(Out, U, V, W) : 4차원 벡터의 외적
    [latex]a = V_xW_y – V_yW_x[/latex]
    [latex]b = V_xW_z – V_zW_x[/latex]
    [latex]c = V_xW_w – V_wW_x[/latex]
    [latex]d = V_yW_z – V_zW_y[/latex]
    [latex]e = V_yW_w – V_wW_y[/latex]
    [latex]f = V_zW_w – V_wW_z[/latex]
    [latex]Outx = fU_y – eU_z + dU_w[/latex]
    [latex]Outy = fU_x + cU_z – bU_w[/latex]
    [latex]Outz = eU_x – cU_y + aU_w[/latex]
    [latex]Outw = dU_x + bU_y – aU_z[/latex]

    D3DXVec4Transform(Out, V, M) : 행렬에 의한 4D 벡터를 변환 한다.
    [latex]Out=\left(V\times M\right)^T[/latex]

    Matice(4×4)
    D3DXMatrixAffineTransformation(Out, s, c, r, t)
    \begin{equation}
    w = t_x+2(c_xc_y^2+c_xc_y^2)t_y+2()t_z+2()\\
    Out=\begin{bmatrix}
    s(2(r^2_y+r^2_z)-1)&2s(r_xr_y+r_zr_w)&2s(r_xr_z-r_yr_w)&0\\
    2s(r_xr_y+r_zr_w)&s(2(r^2_x+r^2_z)-1)&2s(r_yr_z-r_xr_w)&0\\
    2s(r_xr_z+r_yr_w)&2s(r_yr_z-r_xr_w)&s(2(r^2_x+r^2_y)-1)&0\\
    w&w&w&1
    \end{bmatrix}
    \end{equation}

    D3DXMatrixfDeterminant(M)
    [latex]Result = det M[latex]

    D3DXMatrixIdentity(Out)
    [latex]Out=E=begin{bmatrix}1&0&0&0\0&1&0&0\0&0&1&0\0&0&0&1\end{bmatrix}[latex]

    D3DXMatrixInverse(Out, D, M)
    [latex]D = det M[latex]
    [latex]Out = M-1[latex]

    D3DXMatrixIsIdentity(M)
    [latex]Result = M≡E[latex]

    D3DXMatrixLookAtRH(Out, Eye, At, Up)
    [latex]v = Normalized(Eye-At)[latex]
    [latex]l = Uptimes v[latex]
    [latex]u = vtimes l[latex]
    [latex]Out=E=begin{bmatrix}1&0&0&0\0&1&0&0\0&0&1&0\0&0&0&1\end{bmatrix}[latex]

    D3DXMatrixLookAtLH(Out, Eye, At, Up)
    [latex]v = Normalized(At−Eye)[latex]
    [latex]r = Uptimes v[latex]
    [latex]u = vtimes r[latex]
    [latex]Out=E=begin{bmatrix}1&0&0&0\0&1&0&0\0&0&1&0\0&0&0&1\end{bmatrix}[latex]

    D3DXMatrixMultiply(Out, M1, M2)
    [latex]Out = M1times M2[latex]

    D3DXMatrixOrthoRH(Out, w, h, n, f)
    [latex]Q = (f-n)-1[latex]
    [latex]Out=E=begin{bmatrix}1&0&0&0\0&1&0&0\0&0&1&0\0&0&0&1\end{bmatrix}[latex]

    D3DXMatrixOrthoLH(Out, w, h, n, f)
    [latex]Q = (f−n)−1[latex]
    [latex]Out=E=begin{bmatrix}1&0&0&0\0&1&0&0\0&0&1&0\0&0&0&1\end{bmatrix}[latex]

    D3DXMatrixOrthoOffCenterRH(Out, l, r, t, b, n, f)
    [latex]Q = (f-n)-1[latex]
    [latex]w = r-l[latex]
    [latex]h = b-t[latex]
    [latex]Out=E=begin{bmatrix}1&0&0&0\0&1&0&0\0&0&1&0\0&0&0&1\end{bmatrix}[latex]

    D3DXMatrixOrthoOffCenterLH(Out, l, r, t, b, n, f)
    [latex]Q = (f-n)-1[latex]
    [latex]w = r-l[latex]
    [latex]h = b-t[latex]
    [latex]Out=E=begin{bmatrix}1&0&0&0\0&1&0&0\0&0&1&0\0&0&0&1\end{bmatrix}[latex]

    D3DXMatrixPerspectiveRH(Out, w, h, n, f)
    [latex]Q = (f-n)-1[latex]
    [latex]Out=E=begin{bmatrix}1&0&0&0\0&1&0&0\0&0&1&0\0&0&0&1\end{bmatrix}[latex]

    D3DXMatrixPerspectiveLH(Out, w, h, n, f)
    [latex]Q = (f−n)−1[latex]
    [latex]Out=E=begin{bmatrix}1&0&0&0\0&1&0&0\0&0&1&0\0&0&0&1\end{bmatrix}[latex]

    D3DXMatrixPerspectiveFovRH(Out, Fovy, Aspect, n, f)
    [latex]Q = (f−n)−1[latex]
    [latex]y = cotg(Fovy)⁄2[latex]
    [latex]Out=E=begin{bmatrix}1&0&0&0\0&1&0&0\0&0&1&0\0&0&0&1\end{bmatrix}[latex]

    D3DXMatrixPerspectiveFovLH(Out, Fovy, Aspect, n, f)
    [latex]Q = (f−n)−1[latex]
    [latex]y = cotg(Fovy)⁄2[latex]
    [latex]Out=E=begin{bmatrix}1&0&0&0\0&1&0&0\0&0&1&0\0&0&0&1\end{bmatrix}[latex]

    D3DXMatrixPerspectiveOffCenterRH(Out, l, r, t, b, n, f)
    [latex]Q = (f−n)−1[latex]
    [latex]w = r−l[latex]
    [latex]h = b−t[latex]
    [latex]Out=E=begin{bmatrix}1&0&0&0\0&1&0&0\0&0&1&0\0&0&0&1\end{bmatrix}[latex]

    D3DXMatrixPerspectiveOffCenterLH(Out, l, r, t, b, n, f)
    [latex]Q = (f−n)−1[latex]
    [latex]w = r−l[latex]
    [latex]h = b−t[latex]
    [latex]Out=E=begin{bmatrix}1&0&0&0\0&1&0&0\0&0&1&0\0&0&0&1\end{bmatrix}[latex]

    D3DXMatrixReflect(Out, Plane)
    [latex](a,b,c,d) = (Planea,Planeb,Planec,Planed)⁄√(Planea²+Planeb²+Planec²)[latex]
    [latex]Out=E=begin{bmatrix}1&0&0&0\0&1&0&0\0&0&1&0\0&0&0&1\end{bmatrix}[latex]

    D3DXMatrixRotationAxis(Out, V, Angle)
    s = sin Angle
    c = cos Angle
    d = 1−c
    (x,y,z) = V
    [latex]Out=E=begin{bmatrix}1&0&0&0\0&1&0&0\0&0&1&0\0&0&0&1\end{bmatrix}[latex]

    D3DXMatrixRotationQuaternion(Out, Q)
    (x,y,z,w) = Q
    [latex]Out=E=begin{bmatrix}1&0&0&0\0&1&0&0\0&0&1&0\0&0&0&1\end{bmatrix}[latex]

    D3DXMatrixRotationX(Out, Angle)
    s = sin Angle
    c = cos Angle
    [latex]Out=E=begin{bmatrix}1&0&0&0\0&1&0&0\0&0&1&0\0&0&0&1\end{bmatrix}[latex]

    D3DXMatrixRotationY(Out, Angle)
    s = sin Angle
    c = cos Angle
    [latex]Out=E=begin{bmatrix}1&0&0&0\0&1&0&0\0&0&1&0\0&0&0&1\end{bmatrix}[latex]

    D3DXMatrixRotationYawPitchRoll(Out, Yaw, Pitch, Roll)
    (sa,sb,sc) = sin (Roll, Pitch, Yaw)
    (ca,cb,cc) = cos (Roll, Pitch, Yaw)
    [latex]Out=E=begin{bmatrix}1&0&0&0\0&1&0&0\0&0&1&0\0&0&0&1\end{bmatrix}[latex]

    D3DXMatrixRotationZ(Out, Angle)
    s = sin Angle
    c = cos Angle
    [latex]Out=E=begin{bmatrix}1&0&0&0\0&1&0&0\0&0&1&0\0&0&0&1\end{bmatrix}[latex]

    D3DXMatrixScaling(Out, x, y, z)
    [latex]Out=E=begin{bmatrix}1&0&0&0\0&1&0&0\0&0&1&0\0&0&0&1\end{bmatrix}[latex]

    D3DXMatrixShadow(Out, Light, Plane)
    (a,b,c,d) = (Planea,Planeb,Planec,Planed)⁄√(Planea²+Planeb²+Planec²)
    (x,y,z,w) = Light
    f = Lightx⋅Planea + Lighty⋅Planeb + Lightz⋅Planec + Lightw⋅Planed
    [latex]Out=E=begin{bmatrix}1&0&0&0\0&1&0&0\0&0&1&0\0&0&0&1\end{bmatrix}[latex]

    D3DXMatrixTransformation(Out, Scenter, Srot, Scaling, Rotcenter, Rot, Trans)
    D3DXMatrixTranslation(A, -Scenterx, -Scentery, -Scenterz)
    D3DXMatrixScaling(B, Scalingx, Scalingy, Scalingz)
    D3DXMatrixRotationQuaternion(C, Srot)
    u = Scenter − Rotcenter
    D3DXMatrixTranslation(D, ux, uy, uz)
    D3DXMatrixRotationQuaternion(E, Rot)
    v = Rotcenter + Trans
    D3DXMatrixTranslation(F, vx, vy, vz)
    Out = A×CT×B×C×D×E×F

    D3DXMatrixTranslation(Out, x, y, z)
    [latex]Out=E=begin{bmatrix}1&0&0&0\0&1&0&0\0&0&1&0\0&0&0&1\end{bmatrix}[latex]

    D3DXMatrixTranspose(Out, M)
    Out = MT

    Plane

    D3DXPlaneDot(P, V)
    Result = (Pa, Pb, Pc, Pd)⋅V

    D3DXPlaneDotCoord(P, V)
    Result = (Pa, Pb, Pc)⋅V + Pd

    D3DXPlaneDotNormal(P, V)
    Result = (Pa, Pb, Pc)⋅V

    D3DXPlaneIntersectLine(Out, P, U, V)
    n = (Planea, Planeb, Planec)
    d = V − U
    Out = U − d⋅(Pd + n⋅U)⁄(d⋅n) [iff d⋅n ≠ 0]

    D3DXPlaneFromPointNormal(Out, P, N)
    Planea = Nx
    Planeb = Ny
    Planec = Nz
    Planed = −N⋅P

    D3DXPlaneNormalize(Out, P)
    q = 1⁄√(Pa² + Pb² + Pc²)
    Outa = q⋅Pa
    Outb = q⋅Pb
    Outc = q⋅Pc
    Outd = q⋅Pd

    D3DXPlaneFromPoints(Out, A, B, C)
    v = (B − A) × (C − A)
    n = 1⁄|v| v
    Outa = nx
    Outb = ny
    Outc = nz
    Outd = −n⋅A

    D3DXPlaneTransform(Out, P, M)
    Q = P⁄|P|
    u = (Qa, Qb, Qc, 0)
    D = Qd
    A = (−Dux, −Duy, −Duz, 1)
    B = A×M
    v = u×M
    q = 1⁄|v|
    Outa = qvx
    Outb = qvy
    Outc = qvz
    Outd = −qv⋅B

  • DirectX 함수

    COLOR

    D3DXColorAdd – 2 개의 색값을 덧셈 해, 새로운 색값을 생성 한다.
    D3DXColorAdjustContrast – 색의 콘트라스트값을 조정한다.
    D3DXColorAdjustSaturation – 색의 채도값을 조정한다.
    D3DXColorLerp – 선형 보간을 사용해 색값을 생성 한다.
    D3DXColorModulate – 2 개의 색을 블렌드 한다.
    D3DXColorNegative – 있는 색값에 대한 부의 색값을 생성 한다.
    D3DXColorScale – 색값을 스케일링 한다.
    D3DXColorSubtract – 2 개의 색값을 뺄셈 해, 새로운 색값을 생성 한다.

    ETC

    D3DXFloat16To32Array – 16 비트 부동 소수점의 배열을 32 비트 부동 소수점으로 변환한다.
    D3DXFloat32To16Array – 32 비트 부동 소수점의 배열을 16 비트 부동 소수점으로 변환한다.
    D3DXFresnelTerm – 후레넬항을 계산한다.

    Matrix

    D3DXCreateMatrixStack – ID3DXMatrixStack 인터페이스의 인스턴스를 생성 한다.
    D3DXMatrixAffineTransformation – 아핀 변환 행렬을 생성 한다.
    D3DXMatrixDeterminant – 행렬의 행렬식을 돌려준다.
    D3DXMatrixIdentity – 단위행렬을 생성 한다.
    D3DXMatrixInverse – 행렬의 역행열을 계산한다.
    D3DXMatrixIsIdentity – 행렬이 단위행렬인지 아닌지를 판정한다.
    D3DXMatrixLookAtLH – 왼손 좌표계 뷰 행렬을 생성 한다.
    D3DXMatrixLookAtRH – 오른손 좌표계 뷰 행렬을 생성 한다.
    D3DXMatrixMultiply – 2 개의 행렬의 적을 계산한다.
    D3DXMatrixMultiplyTranspose – 2 개의 행렬의 전치적을 계산한다.
    D3DXMatrixOrthoLH – 왼손 좌표계 정사영 행렬을 생성 한다.
    D3DXMatrixOrthoOffCenterLH – 커스터마이즈 한 왼손 좌표계 정사영 행렬을 생성 한다.
    D3DXMatrixOrthoOffCenterRH – 커스터마이즈 한 오른손 좌표계 정사영 행렬을 생성 한다.
    D3DXMatrixOrthoRH – 오른손 좌표계 정사영 행렬을 생성 한다.
    D3DXMatrixPerspectiveFovLH – 시야에 근거해, 왼손 좌표계 퍼스펙티브 투영 행렬을 생성 한다.
    D3DXMatrixPerspectiveFovRH – 시야에 근거해, 오른손 좌표계 퍼스펙티브 투영 행렬을 생성 한다.
    D3DXMatrixPerspectiveLH – 왼손 좌표계 퍼스펙티브 투영 행렬을 생성 한다.
    D3DXMatrixPerspectiveOffCenterLH – 커스터마이즈 한 왼손 좌표계 퍼스펙티브 투영 행렬을 생성 한다.
    D3DXMatrixPerspectiveOffCenterRH – 커스터마이즈 한 오른손 좌표계 퍼스펙티브 투영 행렬을 생성 한다.
    D3DXMatrixPerspectiveRH – 오른손 좌표계 퍼스펙티브 투영 행렬을 생성 한다.
    D3DXMatrixReflect – 평면에 대해서 좌표계를 반전한 행렬을 생성 한다.
    D3DXMatrixRotationAxis – 임의의 축을 회전축으로 해 회전하는 행렬을 생성 한다.
    D3DXMatrixRotationQuaternion – 쿼터니온으로부터 회전 행렬을 생성 한다.
    D3DXMatrixRotationX – x 축을 회전축으로 해 회전하는 행렬을 생성 한다.
    D3DXMatrixRotationY – y 축을 회전축으로 해 회전하는 행렬을 생성 한다.
    D3DXMatrixRotationYawPitchRoll – 요, 피치, 및 롤을 지정해 행렬을 생성 한다.
    D3DXMatrixRotationZ – z 축을 회전축으로 해 회전하는 행렬을 생성 한다.
    D3DXMatrixScaling – x 축, y 축, z 축으로 따라 스케일링 하는 행렬을 생성 한다.
    D3DXMatrixShadow – 지오메트리를 평면에 투영 하는 행렬을 생성 한다.
    D3DXMatrixTransformation – 변환 행렬을 생성 한다.
    D3DXMatrixTranslation – 오프셋(offset)를 지정해 행렬을 생성 한다.
    D3DXMatrixTranspose – 행렬의 전치행렬을 돌려준다.

    Plane

    D3DXPlaneDot – 평면과 4D 벡터의 내적을 계산한다.
    D3DXPlaneDotCoord – 평면과 3D 벡터의 내적을 계산한다. 벡터의 w 파라미터는, 1 이다고 보여진다.
    D3DXPlaneDotNormal – 평면과 3D 벡터의 내적을 계산한다. 벡터의 w 파라미터는, 0 이다고 보여진다.
    D3DXPlaneFromPointNormal – 점트와 법선으로부터 평면을 생성 한다.
    D3DXPlaneFromPoints – 3 개의 점으로부터 평면을 생성 한다.
    D3DXPlaneIntersectLine – 평면과 직선의 교점을 조사한다.
    D3DXPlaneNormalize – 평면의 법선의 길이를 정규화하기 위해(때문에), 평면의 계수를 정규화한다.
    D3DXPlaneTransform – 행렬을 사용해 평면을 변환 한다. 입력 행렬은, 실제의 변환의 역전치행렬이다.
    D3DXPlaneTransformArray – 행렬을 사용해 평면을 변환 한다. 입력 행렬은, 실제의 변환의 역전치행렬이다.

    Quaternion

    D3DXQuaternionBaryCentric – 중심 좌표의 쿼터니온을 돌려준다.
    D3DXQuaternionConjugate – 쿼터니온의 공역을 돌려준다.
    D3DXQuaternionDot – 2 개의 쿼터니온의 내적을 돌려준다.
    D3DXQuaternionExp – 지수함수를 계산한다.
    D3DXQuaternionIdentity – 항등 쿼터니온을 돌려준다.
    D3DXQuaternionInverse – 쿼터니온을 모두 부려, 재정규화한다.
    D3DXQuaternionIsIdentity – 쿼터니온이 항등 쿼터니온일지 어떨지를 판정한다.
    D3DXQuaternionLength – 쿼터니온의 길이를 돌려준다.
    D3DXQuaternionLengthSq – 쿼터니온의 길이의 2 승을 돌려준다.
    D3DXQuaternionLn – 자연대수를 계산한다.
    D3DXQuaternionMultiply – 2 개의 쿼터니온의 적을 계산한다.
    D3DXQuaternionNormalize – 정규화한 길이의 쿼터니온을 계산한다.
    D3DXQuaternionRotationAxis – 임의의 축을 회전축으로서 쿼터니온을 회전시킨다.
    D3DXQuaternionRotationMatrix – 회전 행렬로부터 쿼터니온을 생성 한다.
    D3DXQuaternionRotationYawPitchRoll – 요·피치·롤을 지정해 쿼터니온을 생성 한다.
    D3DXQuaternionSlerp – 구면선형 보간을 사용해, 2 개의 쿼터니온간을 보간 한다.
    D3DXQuaternionSquad – 구면2차 보간을 사용해, 쿼터니온간을 보간 한다.
    D3DXQuaternionSquadSetup – 구면2차 보간의 제어 포인트를 설정한다.
    D3DXQuaternionToAxisAngle – 쿼터니온의 회전축과 회전 각도를 계산한다.

    2D Vector

    D3DXVec2Add – 2 개의 2D 벡터를 추가한다.
    D3DXVec2BaryCentric – 지정한 2D 벡터를 사용해, 중심 좌표의 점을 돌려준다.
    D3DXVec2CatmullRom – 지정된 2D 벡터를 사용해, Catmull-Rom 보간을 실행한다.
    D3DXVec2CCW – 2 개의 2D 벡터의 외적을 계산해, z 요소를 돌려준다.
    D3DXVec2Dot – 2 개의 2D 벡터의 내적을 계산한다.
    D3DXVec2Hermite – 지정된 2D 벡터를 사용해, 에르미트의 스플라인 보간을 실행한다.
    D3DXVec2Length – 2D 벡터의 길이를 돌려준다.
    D3DXVec2LengthSq – 2D 벡터의 길이의 2 승을 돌려준다.
    D3DXVec2Lerp – 2 개의 2D 벡터간의 선형 보간을 실행한다.
    D3DXVec2Maximize – 2 개의 2D 벡터의 최대치로 구성되는 2D 벡터를 돌려준다.
    D3DXVec2Minimize – 2 개의 2D 벡터의 최소 값으로 구성되는 2D 벡터를 돌려준다.
    D3DXVec2Normalize – 2D 벡터의 정규화한 벡터를 돌려준다.
    D3DXVec2Scale – 2D 벡터를 스케일링 한다.
    D3DXVec2Subtract – 2 개의 2D 벡터를 뺄셈 한다.
    D3DXVec2Transform – 지정된 행렬에 의해 2D 벡터를 변환 한다.
    D3DXVec2TransformArray – 지정된 행렬에 의해 2D 벡터의 배열을 변환 한다.
    D3DXVec2TransformCoord – 지정된 행렬에 의해 2D 벡터를 변환 해 w = 1 에 투영 한다.
    D3DXVec2TransformCoordArray – 지정된 행렬에 의해 배열 (x, y, 0, 1)을 변환 해 w = 1 에 투영 한다.
    D3DXVec2TransformNormal – 지정된 행렬에 의해 2D 벡터 법선을 변환 한다.
    D3DXVec2TransformNormalArray – 지정된 행렬에 의해 배열 (x, y, 0, 0)을 변환 한다.

    3D Vector

    D3DXVec3Add – 2 개의 3D 벡터를 추가한다.
    D3DXVec3BaryCentric – 지정한 3D 벡터를 사용해, 중심 좌표의 점을 돌려준다.
    D3DXVec3CatmullRom – 지정된 3D 벡터를 사용해, Catmull-Rom 보간을 실행한다.
    D3DXVec3Cross – 2 개의 3D 벡터의 외적을 계산한다.
    D3DXVec3Dot – 2 개의 3D 벡터의 내적을 계산한다.
    D3DXVec3Hermite – 지정된 3D 벡터를 사용해, 에르미트의 스플라인 보간을 실행한다.
    D3DXVec3Length – 3D 벡터의 길이를 돌려준다.
    D3DXVec3LengthSq – 3D 벡터의 길이의 2 승을 돌려준다.
    D3DXVec3Lerp – 2 개의 3D 벡터간의 선형 보간을 실행한다.
    D3DXVec3Maximize – 2 개의 3D 벡터의 최대치로 구성되는 3D 벡터를 돌려준다.
    D3DXVec3Minimize – 2 개의 3D 벡터의 최소 값으로 구성되는 3D 벡터를 돌려준다.
    D3DXVec3Normalize – 3D 벡터의 정규화한 벡터를 돌려준다.
    D3DXVec3Project – 개체 공간으로부터 스크린 공간에 벡터를 투영 한다.
    D3DXVec3ProjectArray – 개체 공간으로부터 스크린 공간에 벡터를 투영 한다.
    D3DXVec3Scale – 3D 벡터를 스케일링 한다.
    D3DXVec3Subtract – 2 개의 3D 벡터를 뺄셈 한다.
    D3DXVec3Transform – 지정된 행렬에 의해 벡터 (x, y, z, 1)를 변환 한다.
    D3DXVec3TransformArray – 지정된 행렬에 의해 배열 (x, y, z, 1)을 변환 한다.
    D3DXVec3TransformCoord – 지정된 행렬에 의해 3D 벡터를 변환 해 w = 1 에 투영 한다.
    D3DXVec3TransformCoordArray – 지정된 행렬에 의해 배열 (x, y, z, 1)을 변환 해 w = 1 에 투영 한다.
    D3DXVec3TransformNormal – 지정된 행렬에 의해 3D 벡터 법선을 변환 한다.
    D3DXVec3TransformNormalArray – 지정된 행렬에 의해 배열 (x, y, z, 0)을 변환 한다.
    D3DXVec3Unproject – 스크린 공간으로부터 개체 공간에 벡터를 투영 한다.
    D3DXVec3UnprojectArray – 스크린 공간으로부터 개체 공간에 벡터를 투영 한다.

    4D Vector

    D3DXVec4Add – 2 개의 4D 벡터를 추가한다.
    D3DXVec4BaryCentric – 지정한 4D 벡터를 사용해, 중심 좌표의 점을 돌려준다.
    D3DXVec4CatmullRom – 지정된 4D 벡터를 사용해, Catmull-Rom 보간을 실행한다.
    D3DXVec4Cross – 4 차원 벡터의 외적을 산출한다.
    D3DXVec4Dot – 2 개의 4D 벡터의 내적을 요구한다.
    D3DXVec4Hermite – 지정된 4D 벡터를 사용해, 에르미트의 스플라인 보간을 실행한다.
    D3DXVec4Length – 4D 벡터의 길이를 돌려준다.
    D3DXVec4LengthSq – 4D 벡터의 길이의 2 승을 돌려준다.
    D3DXVec4Lerp – 2 개의 4D 벡터간의 선형 보간을 실행한다.
    D3DXVec4Maximize – 2 개의 4D 벡터의 최대치로 구성되는 4D 벡터를 돌려준다.
    D3DXVec4Minimize – 2 개의 4D 벡터의 최소 값으로 구성되는 4D 벡터를 돌려준다.
    D3DXVec4Normalize – 4D 벡터의 정규화한 벡터를 돌려준다.
    D3DXVec4Scale – 4D 벡터를 스케일링 한다.
    D3DXVec4Subtract – 2 개의 4D 벡터를 뺄셈 한다.
    D3DXVec4Transform – 지정된 행렬에 의해 4D 벡터를 변환 한다.
    D3DXVec4TransformArray – 행렬을 지정해 벡터의 배열을 변환 한다.