🕹️자체엔진/DirectX 12 개인공부

[DirectX12] 동적입방체맵핑 마스터완료

Mawile 2022. 5. 16.
728x90

동적 입방체맵핑 마스터 칸료.......

 

해골이 파란색구를 원운동하면서 실시간으로(동적으로) 파란구에 해골과 다른 오브젝트가 그려진다.

 

일단 이번 챕터는 버그가 너무 나서 포기할뻔했다....

복잡하기도하고(그것도 매우 복잡)...

일단 rtv6개만들고 dsv하나더만들고 거기에 일반적인 환경맵도 그려야되서 srv 2개더만들고....

pass도 6개더만들고(환경맵6면 다그려야되서..)

 

 

하..........................

진짜 이 챕터는 똥꼬쇼를 제일 많이한 ㅋㅋㅋㅋㅋ 챕터였다...

비용또한 엄청비싼비용을 가진 렌더링기술이였고,....

 

 

해골이 동적으로 구에 비치는걸 표현하기위해 원운동을 인터넷에 참고하면서 구현했는데,

내가 구현한 원운동을 대략 이런식으로 파이썬에 그래프로 그려보았다.

 

파이썬 소스코드다.

from matplotlib import pyplot as plt
import numpy as np
import math


# p: Center of an object position
# r: Radius
# T: Frequency

gAngle = 0.0

def getCircularMotionX(p, r, T):
    x = np.arange(0.01, 10.0, 0.01)
    Angles = gAngle + T * x;
    y = p + r * np.cos(Angles)

    return x, y

def getCircularMotionZ(p, r, T):
    x = np.arange(0.01, 10.0, 0.01)
    Angles = gAngle + T * x;
    y = p + r * np.sin(Angles)

    return x, y

x,y = getCircularMotionX(10.0, 15.0, 2.0)
plt.plot(x, y)
plt.xlabel('x')
plt.ylabel('y')
plt.title('X Motion')
plt.show()

x,y = getCircularMotionZ(0.0, 15.0, 2.0)
plt.plot(x, y)
plt.xlabel('x')
plt.ylabel('y')
plt.title('Z Motion')
plt.show()

 

 

 

원운동은 이번챕터에서 중요한게아니기때문에 그냥 패스하고,

동적입방체맵핑이 이러하여 끝나게되었다....

 

다음은 드디어.. 많이들어본 "노말맵핑"..

범프맵핑이라고도 하죠.

d3d12공부의 끝이 얼마안남았네요...

노말맵핑->그림자맵핑->주변광차폐->사원수->캐릭터애니메이션->"끝"

바로 lets get it ....

 

 

 

728x90

댓글