![[DirectX12] Direct3D ์ด๊ธฐํ ๊ณผ์ , ๊ทธ๋ํฝ ํ๋ก๊ทธ๋๋ฐ์ CPU์ GPU์ ์ํธ์์ฉ](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FYNJVv%2FbtsBKfueAad%2FkmN4vJsy3n2JKnK6YWUwK0%2Fimg.webp)
๐ Direct3D ์ฅ์น ์ด๊ธฐํ ๊ณผ์ ๋ฐ ์ฉ์ด ์ ๋ฆฌ 1. ์์ ์(descriptor) ๊ฐ์ฒด ์์ ์๋ ์์ ์๋ฃ๋ฅผ ์ง์ ํ๋ ์๋จ์ผ ๋ฟ๋ง ์๋๋ผ ์์์ gpu์ ์์ ํ๋ ์๋จ์ด๊ธฐ๋ ํ๋ค. ์์ ์๋ direct3d์๊ฒ ์์์ ์ฌ์ฉ๋ฒ์(์์์ ํ์ดํ๋ผ์ธ์ ์ด๋ค ๋จ๊ณ์ ๋ฌถ์ด์ผ ํ๋์ง) ๋งํด์ค๋ค. Dirext3D ์์ฉ ํ๋ก๊ทธ๋จ์ ์์์ ์ง์ ํ์ดํ๋ผ์ธ์ ๋ฌถ์ง ์๋๋ค. ๋์ , ๊ทธ๋ฆฌ๊ธฐ ํธ์ถ์ด ์ฐธ์กฐํ ์์ ์๋ค์ ์ง์ ํจ์ผ๋ก์จ ์์์ ํ์ดํ๋ผ์ธ์ ๋ฌถ๋๋ค. 2. ์์ ์ ์ข ๋ฅ(ํ์) CBV ์์ ์ : constant buffer(์์ ๋ฒํผ)๋ฅผ ์์ ํ๋ค. SRV ์์ ์ : shader resource(์ ฐ์ด๋ ์์)์ ์์ ํ๋ค. UAV ์์ ์ : unordered access view(์์ ์๋ ์ ๊ทผ)์ ์์ ํ๋ค. ํ๋ณธ์ถ์ถ๊ธฐ ์์ ..
![[Unreal/์ธ๋ฆฌ์ผ] Behavior Tree ๊ธฐ์ด](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FHXHsC%2FbtslcDZdv5g%2FRVJPyBvajgTNSbc0LVmJF0%2Fimg.png)
1. BB(BlackBoard / ๋ธ๋ ๋ณด๋) AI์ ๊ธฐ์ต์ผ๋ก AI์์ ์ฌ์ฉํ๋ ๋ณ์๋ฅผ ์ ์ฅํ๊ณ ์ด๋ฅผ cpp์์ ์ ๊ทผํ์ฌ ์ง์ ์ด ๊ฐ๋ฅํ๋๋ก ํ๋ค. AI๊ฐ ์์์ผ ํ๋ ๋ชจ๋ ์์๋ ๋ธ๋๋ณด๋ ํค(Blackboard Key)๋ฅผ ํตํด ์ฐธ์กฐ ํ ์ ์๋ค. BT(Behavior Tree / ํ๋ ํธ๋ฆฌ)์ '๋' 'BB_XXXX'๋ผ๊ณ ์ด๋ฆ์ ์ง๋๋ค. 2. BT(Behavior Tree / ํ๋ ํธ๋ฆฌ) ๐ธ ๋ฃจํธ(Root): Tree์ ์์์ --- ๋ฐ์ฝ๋ ์ดํฐ, ์๋น์ค์ ๋ถ์ ์ ์๋ค. --- ๋ํ ์ผ ํจ๋์์ ์ฌ์ฉํ BB(๋ธ๋๋ณด๋)๋ฅผ ๊ณ ๋ฅผ ์ ์๋ค. ๐ธ ์ปดํฌ์ง(Composite): ๋ถ๊ธฐ์ ๋ฃจํธ๋ฅผ ์ ์ํ๊ณ ๊ทธ ๋ถ๊ธฐ์ ๊ธฐ๋ณธ๊ท์น(ํ๋ฆผ ์ ์ด์ ํํ, ์์ ๋ถ๊ธฐ์ ์คํ๋ฐฉ์)์ ์ ์ํ๋ค. ๋ชจ๋ ์ผ์ชฝ์์ ์ค๋ฅธ์ชฝ์ผ๋ก ๋ถ๊ธฐ๊ฐ ์คํ์ด ๋..

1. ๊ตฌ๊ธ์ gitignore์ด๋ผ๊ณ ๊ฒ์ํ๋ค. ๊ฒ์๊ฒฐ๊ณผ ๋งจ ์ฒซ๋ฒ์งธ ์ฌ์ดํธ์ ์ ์ํ๋ค. 2. Raw ํด๋ฆญ 3. ๋ค๋ฅธ ์ด๋ฆ์ผ๋ก ์ ์ฅ 4. vcs์ ์ฐ๊ฒฐํ ๊ฒฝ๋ก์ ๊ฐ์ ํ์ผ์ด๋ฆ์ ".gitignore" ์ผ๋ก ๋ณ๊ฒฝ ํ ์ ์ฅ ๋ ! ๐ ๊น์ด๋ ์์คํธ๋ฆฌ์ ๊ฐ์ ๋ฒ์ ์ปจํธ๋กค์์คํ ์ ๊ฐ์ changelist๋ฅผ ํ์ธํด๋ณด๋ฉด ๋๋ค.

1) 3์ฐจ์ ์ขํ๊ณ 3์ฐจ์ ๊ณต๊ฐ์ ์ธ ๊ธฐ์ ์ถ x,y,z์ ๋ํด x → y → z → x → y ์ ์์๋ก ์ธ ์ถ์ด ์ํ๋๋ค๊ณ ์๊ฐํด๋ณด์. ์ขํ๊ณ๋ฅผ ๊ตฌ๋ถํ๋ ๋ฐฉ๋ฒ์ x ์์ y๋ก ๊ฐ๋ ๋ฐฉํฅ์ผ๋ก ์์ ์ ์์๋ ์์ง ์๊ฐ๋ฝ์ ๋ฐฉํฅ์ด๋ค. 2) 3์ฐจ์ ๊ณต๊ฐ์ ๋ณํ ํฌ๊ธฐ(Scale:S), ์์น(Translation:T), ํ์ (Rotation:R) 3์ฐจ์ ๋ชจ๋ธ๋ง ํ๋ ฌ๊ณฑ์ ์์๋ Matrix = TRS 3) ์นด๋ฉ๋ผ ๊ณต๊ฐ ์นด๋ฉ๋ผ์๋ ํฌ๊ธฐ์ ๊ฐ๋ ์ด ์๊ธฐ ๋๋ฌธ์, ์นด๋ฉ๋ผ์ ํธ๋์คํผ์ ํฌ๊ธฐ ๋ณํ์ ์ ์ธํ ํ์ ๊ณผ ์ด๋๋ณํ์ผ๋ก๋ง ๊ตฌ์ฑ๋๋ค. ์นด๋ฉ๋ผ์ ํธ๋์คํผ์ ์ ์ฅ๋ ์์น ๊ฐ์ T = (Tx, Ty, Tz)๋ก ์ ์ฅํ๊ณ , ๋ก์ปฌ ์ถ ๊ฐ์ ๊ฐ๊ฐ X = (Xx, Xy, Xz), Y = (Yx, Yy, Yz), Z = (Zx, Zy, ..

์ต๋ํ 3D ํ์ ์ ๋ํด์ ์ดํดํ๊ณ ์ถ์ด์ ์์ ๊ณผ ๊ตฌ๊ธ๋ง์ ํ๋ฉด์ ์ฟผํฐ๋์ธ์ ์ดํดํด๋ณด๊ณ ๋ธ๋ก๊ทธ๋ฅผ ์์ฑํ๊ณ ์ถ์๋๋ฐ…. ๊ฒฐ๋ก ๋ง ๋งํ๋ฉด ์์๋ง ์๊ฒ ๋๊ณ ์ดํดํ๋ ๊ฑด ํฌ๊ธฐํ๋ค…. ใ ใ ๋์ ๋ณด์ด์ง ์๋ 4์ฐจ์์ ์์ํ๊ธฐ๋ ์ด๋ ต๊ณ 4์ฐจ์์ 3์ฐจ์์ผ๋ก ๋น์ ํด์ ์์์ ์ง๋ ๊ฒ๋ ๋ง๋ง์น ์์๋ค…. ์ด๋ป๊ฒ ์ด๋ป๊ฒ ํด์ ์ฌ์ ์ ํ์ ๊น์ง ๊ฐ๋๋ฐ ๋ฑ ๋ณต๊ฐ(isoclimic) ํ์ ์ด ๋์ค๊ณ …. ํฌ๊ธฐํ๋ค. ์ํ์ ์๋ฆฌ์ ๋ก์ ํด๋ฐํด์ด ๋์ ํ ์ ์ฒด๊ณ, ๋ณต์์, ํ์, ์ฟผํฐ๋์ธ์ ์ดํดํ๊ธฐ ๋ณด๋ค๋ ์ ์ฌ์ฉ๋ง ํ๊ธฐ๋ก ํ๋ค. ์๋๋ ์ฟผํฐ๋์ธ ์ดํด๋ฅผ ํฌ๊ธฐํ๋ ๊ณผ์ (?)์ด๋ค. ํํ ์์์ ๋ค ์ ์ ์ด๋์ผ๋ ๋์์ด ๋๋ฉด ์ข๊ฒ ๋ค. โป ์ฐธ๊ณ ๋์์ ์ฐธ๊ณ ์ฌ์ดํธ๋ฅผ ํ์ธํ์๋ ค๋ฉด ๋๋ณด๊ธฐ๋ฅผ ๋๋ ค์ฃผ์ธ์ ๋๋ณด๊ธฐ [ ์ฐธ๊ณ ๋์ ] http://www.ye..

1. ์ฃผ์ ํจ์ ๊ฐ๋จ ์ ๋ฆฌ Awake Start ํจ์ ์ ์ ํธ์ถ๋๋ฉฐ ํ๋ฆฌํน์ด ์ธ์คํด์คํ ๋ ์งํ์ ํธ์ถ. Start ์ ๋ฐ์ดํธ ์์ ์ง์ ์ต์ด๋ก ์คํ. OnEnalbe ์ค๋ธ์ ํธ๊ฐ ํ์ฑํ๋ ๊ฒฝ์ฐ์๋ง ํ์ฑํ ์ง ํ ์ด ํจ์๋ฅผ ํธ์ถ. FixedUpdate FixedUpdate ๋ ์ข ์ข Update ๋ณด๋ค ๋ ์์ฃผ ํธ์ถ๋จ. ํ๋ ์ ์๋๊ฐ ๋ฎ์ ๊ฒฝ์ฐ ํ๋ ์๋น ์ฌ๋ฌ ๋ฒ ํธ์ถ๋ ์ ์์. ๋ชจ๋ ๋ฌผ๋ฆฌ ๊ณ์ฐ ๋ฐ ์ ๋ฐ์ดํธ๋ FixedUpdate ํ ์ฆ์ ๋ฐ์. FixedUpdate ์ ์์ง์ ๊ณ์ฐ์ ์ ์ฉํ ๋ Time.deltaTime ๋งํผ ๊ฐ์ ๊ณฑํ ํ์๊ฐ ์์. - ์ด์ : FixedUpdate ๊ฐ ํ๋ ์ ์๋์ ๊ด๊ณ์์ด ์ ๋ขฐํ ์์๋ ํ์ด๋จธ์์ ํธ์ถ๋๊ธฐ ๋๋ฌธ Update Update ๋ ํ๋ ์๋น ํ ๋ฒ ํธ์ถ. ํ๋ ์ ์ ๋ฐ..

์๋์ ์๊ฐ ๊ฐ๊ฒฉ Update( ) ๋ฉ์๋๋ ํ๊ท ์ ์ผ๋ก 1์ด์ 60๋ฒ ์คํ๋ฉ๋๋ค. ํ์ง๋ง ์ด๊ฒ์ ํ๊ท ์ผ ๋ฟ ๊ฒ์ ํ๋ฉด์ ๊ฐฑ์ ํ๋ ์ฃผ๊ธฐ๋ ์ปดํจํฐ ์ฑ๋ฅ์ ์์กด์ ์ด๋ผ์ Update( )๊ฐ 1์ด์ ๋ช ๋ฒ ์คํ๋ ์ง๋ ์ ์ ์์ต๋๋ค. ํ์ง๋ง ์ด๊ฒ์ ํ๊ท ์ผ ๋ฟ ๊ฒ์ ํ๋ฉด์ ๊ฐฑ์ ํ๋ ์ฃผ๊ธฐ๋ ์ปดํจํฐ ์ฑ๋ฅ์ ์์กด์ ์ด๊ธฐ ๋๋ฌธ์ Update๊ฐ 1์ด์ ๋ช ๋ฒ ์คํ๋ ์ง๋ ์ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ Update( ) ๋ฉ์๋์์ ์ด๋น ์ด๋ ์๋๋ ํ์ ์๋ ๋ฑ ์๊ฐ๊ณผ ๊ด๋ จ๋ ์์น๋ฅผ ๋ค๋ฃฐ ๋๋ ์๊ฐ ๊ฐ๊ฒฉ์ ๊ณ ๋ คํด์ผ ํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ์ปดํจํฐ ์ฑ๋ฅ์ ๋ฐ๋ผ ๊ฐ์ ์ฝ๋๊ฐ ๋ค๋ฅด๊ฒ ๋์ํ ์ ์์ต๋๋ค. ์ด ๋ฌธ์ ์ ๊ด๋ จ๋ ํํ ํ์์ผ๋ก Pc๊ฒ์ด๋จธ๋ค์ด 'ํ๋ ์ ์ ํ'์ ํด์ ํ์ ๋ ๋ฐ์ํ๋ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ๊ณ ์ ํ๋ ์์ด 60์ธ ๊ฒ์์ด ์๋ค๊ณ ..

GetComponent( ) ๋ฉ์๋ ์ํ๋ ํ์ ์ ์ปดํฌ๋ํธ๋ฅผ ์์ ์ ๊ฒ์ ์ค๋ธ์ ํธ์์ ์ฐพ์์ค๋ ๋ฉ์๋์ ๋๋ค. Rigidbody = GetComponent(); โป ์ ๋ค๋ฆญ: GetComponent ( ) ๋ฉ์๋์์ ์ฌ์ฉํ ๊บฝ์ ๋ ์ ๋ค๋ฆญ(Generic)๊ธฐ๋ฒ์ ๋๋ค. ์ ๋ค๋ฆญ์ ๋ฉ์๋๋ ํด๋์ค๊ฐ ์ฌ๋ฌ ํ์ ์ ํธํ๋๊ฒ ํฉ๋๋ค. ๊บฝ์ ์์ ์ํ๋ ํ์ ์ ๋ช ์ํ๋ฉด ํด๋์ค๋ ๋ฉ์๋๊ฐ ํด๋น ํ์ ์ ๋ง์ถฐ ๋์ํฉ๋๋ค. ์ ๋ค๋ฆญ์ ์ฌ์ฉํ์ง ์์ผ๋ฉด ๊ฐ์ ์ฒ๋ฆฌ๋ฅผ ์ํ ์ฌ๋ฌ ํ์ ์ ๋ฉ์๋๋ ํด๋์ค๋ฅผ ์ผ์ผ์ด ๋ง๋ค์ด์ผ ํฉ๋๋ค. (์ด๋) GetAxis( ) ๋ฉ์๋ ์ด๋ค ์ถ์ ๋ํ ์ ๋ ฅ๊ฐ์ ์ซ์๋ก ๋ฐํํ๋ ๋ฉ์๋์ ๋๋ค.Input.GetAxis( ) ๋ฉ์๋๋ ์ถ์ ์ด๋ฆ์ ๋ฐ์ต๋๋ค. ์ด ์คํธ๋ง์ ์ ๋ ฅ ๋งค๋์ ์ค์ ์ฐฝ์์ ์์ ๋ ๊ฐ๋ฅํฉ๋๋ค. ๊ฒฝ..

๊ฒ์ ์์ง์์ ๊ฒ์ ์ค๋ธ์ ํธ๋ ๊ฒ์ ์ธ์์ ์กด์ฌํ๋ ํ๋์ ๋ฌผ์ฒด์ ๋๋ค. ์ ๋ํฐ๋ ๊ฒ์์ค๋ธ์ ํธ๋ฅผ ์ปดํฌ๋ํธ ํจํด์ ์ฌ์ฉํด ๋ง๋ญ๋๋ค. ์ปดํฌ๋ํธ ํจํด ํน์ ์ปดํฌ์ง์ (composition) ํจํด์ด๋ ๋ฏธ๋ฆฌ ๋ง๋ค์ด์ง ๋ถํ์ ์กฐ๋ฆฝํ์ฌ ์์ฑ๋ ์ค๋ธ์ ํธ๋ฅผ ๋ง๋๋ ๋ฐฉ์์ ๋๋ค. ์ปดํฌ๋ํธ ๋ฐฉ์์ ๋ฏธ๋ฆฌ ๋ง๋ค์ด์ง ์ปดํฌ๋ํธ๋ฅผ ๋น ๊ป๋ฐ๊ธฐ์ธ ๊ฒ์ ์ค๋ธ์ ํธ์ ์กฐ๋ฆฝํ๋ ๋ฐฉ์์ ๋๋ค. ์ด๋ ๊ฒ ๋๋ฉด ์ ์ฐํ๊ฒ ์ฌ์ฌ์ฉ์ด ๊ฐ๋ฅํ๊ณ , ๊ธฐํ์์ ํ๋ก๊ทธ๋๋จธ์ ์์กด๋๊ฐ ๋ฎ์์ง๋ฉฐ ๋ ๋ฆฝ์ฑ ๋๋ถ์ ๊ธฐ๋ฅ ์ถ๊ฐ ์ญ์ ๊ฐ ์ฝ์ต๋๋ค. MonoBehaviour? ์ ๋ํฐ์ ๋ชจ๋ ์ปดํฌ๋ํธ๋ monobehaviour ํด๋์ค๋ฅผ ์์ํฉ๋๋ค. MonoBehaviourํด๋์ค๋ ์ ๋ํฐ์์ ๋ฏธ๋ฆฌ ๋ง๋ค์ด ์ ๊ณตํ๋ ํด๋์ค์ด๋ฉฐ ์ปดํฌ๋ํธ์ ํ์ํ ๊ธฐ๋ณธ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. ์ฆ, MonoBehavi..

๋งจ๋ ๋ค๋ ๋ง ํ๋๋ฐ ์ ๋ํฐ ํ๋ ค๋ ๋๋ฌด ์ด๋ ต๋ค์@_@...๋ค๋น๋ฉ์ฌ ์ธ๊ฐ๋ค์ผ๋ฉด์ ๋ฐ๋ผ ์ณค๋๋ฐ ์ ์๋์ ์๋๋๋ฐ ๋๋ warning ๋ ์ ๊ณ ์ํ.. ๊ฒฝ๊ณ ๋ฌธ๊ณผ NullReferenceException ์๋ฌ ํด๊ฒฐ๋ฐฉ๋ฒ์ ๊ณต์ ํฉ๋๋ค.. 1. warning CS0108: 'ControlCharacter.camera' hides inherited member 'Component.camera'. Use the new keyword if hiding was intended. ๋ณ์ ์ด๋ฆ์ ์ฐ๋์์ผ๋ก ~~~~~~~ ํํํ๋ฉด์ ๊ฒฝ๊ณ ๋ฅผ ์๋ฆฌ๊ณ ์๋ ๊ฒ์ ๋ณผ ์์์ ๊ฒ์ ๋๋ค. "camera"๋ผ๋ ํค์๋๋ฅผ ์ฌ์ฉํ์ง ๋ง๋ผ๋ ๊ฒฝ๊ณ ์ ๋๋ค. ์ ๋ง ๊ฐ๋จํ๊ฒ "_camera" ์ด๋ฐ ์์ผ๋ก ๋ณ์ ์ด๋ฆ์ ๋ณ๊ฒฝํ๋ฉด ๊ฒฝ๊ณ ๊ฐ ์ฌ๋ผ์ง๋๋ค. c++์์ ์ฌ..