Notice
Recent Posts
Recent Comments
Link
관리 메뉴

λͺ©λ‘μ „체 κΈ€ (1107)

KoreanFoodie's Study

[OpenGL ES] 17κ°• : λ² μ§€μ–΄ 곑선, λ“œ μΉ΄μŠ€ν…”μ‘° μ•Œκ³ λ¦¬μ¦˜, ν—ˆλ°‹(Hermit) 곑선, Bilinear Patch, λ² μ§€μ–΄ μ‚Όκ°ν˜•

이 κ°•μ˜λŠ” μœ νˆ¬λΈŒμ— 무료둜 κ³΅κ°œλ˜μ–΄ μžˆλŠ” ν•œμ •ν˜„ κ΅μˆ˜λ‹˜μ˜ 컴퓨터 κ·Έλž˜ν”½μŠ€ κ°•μ’Œλ₯Ό μ •λ¦¬ν•œ κΈ€μž…λ‹ˆλ‹€. μžμ„Έν•œ λ‚΄μš©μ€ κ°•μ˜λ₯Ό 직접 λ“€μœΌμ‹œκ±°λ‚˜ 책을 κ΅¬μž…ν•˜μ…”μ„œ 확인해 λ³΄μ„Έμš”. κ°•μ˜ μžλ£ŒλŠ” κΉƒν—™ 링크에 μ˜¬λΌμ™€ μžˆμŠ΅λ‹ˆλ‹€. μš”μ•½ : 1. λ² μ§€μ–΄ 곑선은, μ£Όμ–΄μ§„ 정점(control point)을 μž‡λŠ” 곑선이닀. 점이 N 개 μžˆμ„λ•Œ, N-1 μ°¨ λ² μ§€μ–΄ 곑선을 λ§Œλ“€ 수 μžˆλŠ”λ°, κ·Έλƒ₯ μ„ ν˜• 보간을 μ—¬λŸ¬ 번 λ°˜λ³΅ν•΄μ„œ μ·¨ν•˜λ©΄ λœλ‹€. 이 기법을 λ“œ μΉ΄μŠ€ν…”μ‘° μ•Œκ³ λ¦¬μ¦˜μ΄λΌκ³  ν•œλ‹€. 2. ν…Œμ…€λ ˆμ΄μ…˜μ€, 컴퓨터가 곑선 및 곑면을 μ²˜λ¦¬ν•˜λŠ” λ°©μ‹μœΌλ‘œ, λ² μ§€μ–΄ 곑선 및 곑면을 μž‘μ€ μ„ λΆ„μ΄λ‚˜ 폴리곀의 μ‘°ν•©μœΌλ‘œ μͺΌκ°œλŠ” 과정을 μ˜λ―Έν•œλ‹€. 간격이 μž‘μ„ 수둝 더 λ§€λˆν•œ 곑면을 λ§Œλ“€ 수 μžˆμ„ 것이닀. 컨트둀 포인트λ₯Ό κΈ°μ€€μœΌλ‘œ μ„ ν˜• 보간을 λ°˜λ³΅ν•˜μ—¬ 패치..

Game Dev/OpenGL ES 2023. 5. 18. 01:19
[언리얼] 언리얼 μ΅œμ ν™” ν”„λ‘œνŒŒμΌλ§ : λ©€ν‹° ν”Œλž«νΌμ„ μœ„ν•œ μ΅œμ ν™” λ“œλΌμ΄λΈŒ (언리얼 μ„œλ°‹ 2022) μš”μ•½

[언리얼] μ–΄λ–€ κ°œλ… : μ–΄λ–»κ²Œ ν•˜κΈ° 핡심 : 1. 2. 3. 언리얼 μ„œλ°‹ 온라인 2022 λ₯Ό ν›‘μ–΄ λ³΄λ©΄μ„œ, μ΅œμ ν™” 및 ν”„λ‘œνŒŒμΌλ§κ³Ό κ΄€λ ¨ν•œ λ‚΄μš©μ΄ μžˆμ–΄ 기둝차 μš”μ•½ν•΄ 보렀 ν•©λ‹ˆλ‹€. ν˜„μž¬ 개발 쀑인 버전이 언리얼5 κ°€ μ•„λ‹ˆλΌμ„œ μ•„μ‰¬μš΄ 뢀뢄은 μžˆμ§€λ§Œ... 일단 μ•Œμ•„λ‘λ©΄ λ§Žμ€ 도움이 되겠죠 πŸ˜… 언리얼 μ„œλ°‹ 온라인 2022 λ₯Ό 보며 λ‚΄μš©μ„ μ •λ¦¬ν–ˆμœΌλ‹ˆ, κΆκΈˆν•˜μ‹  뢄은 ν’€ μ˜μƒμ„ λ³΄μ‹œκΈΈ λ°”λžλ‹ˆλ‹€! πŸ˜„ Hitching 이 μ–Έμ œ λ°œμƒν•˜λŠ”μ§€ νŒŒμ•…ν•˜μ—¬ μ–΄λ–€ λΆ€λΆ„μ—μ„œ 병λͺ©ν˜„상이 λ°œμƒν•˜λŠ”μ§€ νŒŒμ•…ν•΄μ•Ό ν•œλ‹€. μΉ΄νŠΈλΌμ΄λ”μ˜ 경우 GameThread μ—μ„œ 병λͺ©μ΄ λ°œμƒν•˜μ—¬ 이λ₯Ό μ§‘μ€‘μ μœΌλ‘œ λ‹€λ£¨μ—ˆλ‹€κ³  함. κ°•μ˜μ—μ„œλŠ” 닀루지 μ•Šμ•˜μ§€λ§Œ... RenderThread 의 경우, PSO μΊμ‹œλ₯Ό 톡해 μ΅œμ ν™”λ₯Ό μ§„ν–‰ν•˜μ˜€λ‹€κ³  ν•œλ‹€. κ΄€λ ¨ λ‚΄μš©μ€ 곡식..

Game Dev/Unreal C++ : Dev Log 2023. 5. 14. 21:07
[언리얼] 언리얼 μΈμ‚¬μ΄νŠΈ : 언리얼 μ΅œμ ν™” ν”„λ‘œνŒŒμΌλ§

언리얼 μΈμ‚¬μ΄νŠΈ 핡심 : 1. 언리얼 μΈμ‚¬μ΄νŠΈλŠ” μ΅œμ ν™”λ₯Ό μœ„ν•΄ ν”„λ‘œνŒŒμΌλ§μ„ μ‰½κ²Œ λ„μ™€μ£ΌλŠ” μœ μš©ν•œ νˆ΄μ΄λ‹€. 2. κ²Œμž„ μ“°λ ˆλ“œ, λ Œλ” μ“°λ ˆλ“œ λ“± μ–΄λ””μ—μ„œ 병λͺ© ν˜„μƒμ΄ μΌμ–΄λ‚˜λŠ”μ§€λ₯Ό νŒŒμ•…ν•˜μž 3. λͺ¨λ°”일 κΈ°κΈ°λ‘œλ„ utrace λ₯Ό 내보내어 뢄석을 ν•  수 μžˆλ‹€! 언리얼 μΈμ‚¬μ΄νŠΈλΌλŠ” νˆ΄μ„ 톡해 언리얼 μ΅œμ ν™” 및 ν”„λ‘œνŒŒμΌλ§μ„ ν•œ 번 ν•΄ 보자! (λ§Œμ•½ μ†ŒμŠ€λΉŒλ“œμ—μ„œ μ‹œμž‘ν•  경우, UnrealInsight λͺ¨λ“ˆμ„ λΉŒλ“œν•˜λ©΄ UnrealInsights.exe 파일이 생긴닀. UnrealInsights-Win64-DebugGame λΌλŠ” 이름일 μˆ˜λ„ 있음 πŸ˜…) μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ μ‹€ν–‰ν•˜λ©΄ Trace Sessions(트레이슀 μ„Έμ…˜) (1), Trace Store Directory(트레이슀 μŠ€ν† μ–΄ 디렉터리) (2) μ œμ–΄, New Conne..

Game Dev/Unreal C++ : Dev Log 2023. 5. 12. 19:26
[OpenGL ES] 16κ°• : μ „μ—­ μ‘°λͺ…, 레이 νŠΈλ ˆμ΄μ‹±, 그림자 κ΄‘μ„ , λ°˜μ‚¬κ΄‘, κ΅΄μ ˆκ΄‘, 라이트 λ§€ν•‘, ν™˜κ²½ λ§€ν•‘, 큐브 λ§€ν•‘

이 κ°•μ˜λŠ” μœ νˆ¬λΈŒμ— 무료둜 κ³΅κ°œλ˜μ–΄ μžˆλŠ” ν•œμ •ν˜„ κ΅μˆ˜λ‹˜μ˜ 컴퓨터 κ·Έλž˜ν”½μŠ€ κ°•μ’Œλ₯Ό μ •λ¦¬ν•œ κΈ€μž…λ‹ˆλ‹€. μžμ„Έν•œ λ‚΄μš©μ€ κ°•μ˜λ₯Ό 직접 λ“€μœΌμ‹œκ±°λ‚˜ 책을 κ΅¬μž…ν•˜μ…”μ„œ 확인해 λ³΄μ„Έμš”. κ°•μ˜ μžλ£ŒλŠ” κΉƒν—™ 링크에 μ˜¬λΌμ™€ μžˆμŠ΅λ‹ˆλ‹€. μš”μ•½ : 1. Phong λΌμ΄νŒ… λͺ¨λΈμ€ local illumination 을 λ§Œλ“€μ–΄λ‚΄λŠ” λ°λŠ” μœ μš©ν•˜μ§€λ§Œ, μ „μ—­ μ‘°λͺ…(Global Illumination) 을 μžμ—°μŠ€λŸ½κ²Œ λ§Œλ“€μ–΄λ‚΄κΈ° μœ„ν•΄μ„œλŠ”, 3 κ°€μ§€ 좔가적인 μš”μ†Œλ₯Ό κ³ λ €ν•΄μ•Ό ν•œλ‹€. 즉, 그림자 κ΄‘μ„ (Shadow Ray), λ°˜μ‚¬κ΄‘(Reflection Ray), κ΅΄μ ˆκ΄‘(Transmitted/Refraction Ray) 을 λ°˜μ˜ν•΄μ•Ό ν•œλ‹€. 2. 레이 νŠΈλ ˆμ΄μ‹± 기법은 μž¬κ·€μ μœΌλ‘œ Ray 값듀을 κ³„μ‚°ν•˜μ—¬ 색상을 κ³„μ‚°ν•œλ‹€. 각 Ray λŠ” Primary Ray ..

Game Dev/OpenGL ES 2023. 4. 28. 00:27
[OpenGL ES] 15κ°• : μ‰λ„μš° λ§€ν•‘(Shadow Mapping), PCR(Percentage Closer Filtering), Hard Shadow vs Soft Shadow

이 κ°•μ˜λŠ” μœ νˆ¬λΈŒμ— 무료둜 κ³΅κ°œλ˜μ–΄ μžˆλŠ” ν•œμ •ν˜„ κ΅μˆ˜λ‹˜μ˜ 컴퓨터 κ·Έλž˜ν”½μŠ€ κ°•μ’Œλ₯Ό μ •λ¦¬ν•œ κΈ€μž…λ‹ˆλ‹€. μžμ„Έν•œ λ‚΄μš©μ€ κ°•μ˜λ₯Ό 직접 λ“€μœΌμ‹œκ±°λ‚˜ 책을 κ΅¬μž…ν•˜μ…”μ„œ 확인해 λ³΄μ„Έμš”. κ°•μ˜ μžλ£ŒλŠ” κΉƒν—™ 링크에 μ˜¬λΌμ™€ μžˆμŠ΅λ‹ˆλ‹€. μš”μ•½ : 1. μ‰λ„μš° λ§€ν•‘(Shadow Mapping) 은 그림자λ₯Ό μ²˜λ¦¬ν•˜κΈ° μœ„ν•΄ Vertex Shader μ—μ„œ light source λ‘œλΆ€ν„° 각 surface μ κΉŒμ§€μ˜ κΉŠμ΄κ°’κ³Ό visibility 값을 μ €μž₯ν•˜λŠ” 기법을 μ˜λ―Έν•œλ‹€. 2. Pass 1 μ—μ„œλŠ” 각 ν‘œλ©΄κΉŒμ§€μ˜ κΉŠμ΄κ°’ z λ₯Ό, Pass 2 μ—μ„œλŠ” μ‹€μ œ μ κΉŒμ§€μ˜ 거리 d λ₯Ό μ €μž₯ν•˜μ—¬, 이λ₯Ό λΉ„κ΅ν•΄μ„œ Shadow μ—¬λΆ€λ₯Ό κ²°μ •ν•œλ‹€. Nearest Sampling κ³Ό Bilinear Interpolation λ‘˜ λ‹€ 별 도움은 λ˜μ§€ μ•ŠμœΌλ―€λ‘œ, PC..

Game Dev/OpenGL ES 2023. 4. 27. 14:42
[OpenGL ES] 14κ°• : 노말 λ§€ν•‘(Normal Mapping), Height Map, νƒ„μ  νŠΈ 곡간(Tangent Space), Tangent-Space Normal Mapping

이 κ°•μ˜λŠ” μœ νˆ¬λΈŒμ— 무료둜 κ³΅κ°œλ˜μ–΄ μžˆλŠ” ν•œμ •ν˜„ κ΅μˆ˜λ‹˜μ˜ 컴퓨터 κ·Έλž˜ν”½μŠ€ κ°•μ’Œλ₯Ό μ •λ¦¬ν•œ κΈ€μž…λ‹ˆλ‹€. μžμ„Έν•œ λ‚΄μš©μ€ κ°•μ˜λ₯Ό 직접 λ“€μœΌμ‹œκ±°λ‚˜ 책을 κ΅¬μž…ν•˜μ…”μ„œ 확인해 λ³΄μ„Έμš”. κ°•μ˜ μžλ£ŒλŠ” κΉƒν—™ 링크에 μ˜¬λΌμ™€ μžˆμŠ΅λ‹ˆλ‹€. μš”μ•½ : 1. 고해상도 λ©”μ‹œμ—μ„œ, μ‹€μ‹œκ°„μœΌλ‘œ λΌμ΄νŒ…μ„ μ²˜λ¦¬ν•˜λŠ”λ°λŠ” λΉ„μš©μ΄ 많이 λ“€ 것이닀. 이λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄, 노말 λ§€ν•‘(Normal Mapping) κ³Ό 저해상도 λ©”μ‹œλ₯Ό μ‚¬μš©ν•˜μ—¬ 효율적으둜 κ·ΈλŸ΄λ“―ν•œ λΌμ΄νŒ… 효과λ₯Ό λ§Œλ“€μ–΄λ‚Ό 수 μžˆλ‹€. 2. 노말 맡을 λ§Œλ“œλŠ” λŒ€μ€‘μ μΈ λ°©λ²•μœΌλ‘œλŠ” Height Field κ°€ μžˆλ‹€. λ©”μ‹œμ—μ„œ ν•œ 점에 μΈμ ‘ν•œ 4개의 μ μ—μ„œ 각 2개의 점씩 μ§μ„ μ˜ 방정식을 λ§Œλ“  λ‹€μŒ, 두 직선 벑터에 λŒ€ν•΄ 외적을 μ·¨ν•˜λŠ” 방법이닀. 그럼 (x, y) μ’Œν‘œμ— λŒ€ν•œ z 의 값을 λ°©μ •μ‹μœΌλ‘œ ν‘œν˜„ν• ..

Game Dev/OpenGL ES 2023. 4. 27. 01:57
[OpenGL ES] 13κ°• : μŠ€μΌˆλ ˆν†€(Skeleton), Bone Space, Skinning, Forward Kinematics, Inverse Kinematics

이 κ°•μ˜λŠ” μœ νˆ¬λΈŒμ— 무료둜 κ³΅κ°œλ˜μ–΄ μžˆλŠ” ν•œμ •ν˜„ κ΅μˆ˜λ‹˜μ˜ 컴퓨터 κ·Έλž˜ν”½μŠ€ κ°•μ’Œλ₯Ό μ •λ¦¬ν•œ κΈ€μž…λ‹ˆλ‹€. μžμ„Έν•œ λ‚΄μš©μ€ κ°•μ˜λ₯Ό 직접 λ“€μœΌμ‹œκ±°λ‚˜ 책을 κ΅¬μž…ν•˜μ…”μ„œ 확인해 λ³΄μ„Έμš”. κ°•μ˜ μžλ£ŒλŠ” κΉƒν—™ 링크에 μ˜¬λΌμ™€ μžˆμŠ΅λ‹ˆλ‹€. μš”μ•½ : 1. 캐릭터 μ• λ‹ˆλ©”μ΄μ…˜μ„ κ΅¬ν˜„ν•  λ•ŒλŠ” 일반적으둜 μŠ€μΌˆλ ˆν†€μ„ 많이 μ‚¬μš©ν•œλ‹€. 각 λΌˆλŠ” μ„œλ‘œ λΆ€λͺ¨ μžμ‹ 관계λ₯Ό λ§Ίκ³  있으며 λΌˆμ— μžˆλŠ” 각 vertex λŠ” ν•΄λ‹Ή 뼈의 Bone Space 에 μ •μ˜λœ μ’Œν‘œλ₯Ό κ°€μ§ˆ 수 μžˆλ‹€. 2. Forward Kinematics λŠ” Skeleton 의 Hierarchy μ—μ„œ λΆ€λͺ¨λ‘œλΆ€ν„° μžμ‹κΉŒμ§€, Top-Down traversal λ°©μ‹μœΌλ‘œ μ›€μ§μž„μ„ μ μš©ν•˜λŠ” 방식이닀. 각 λΌˆκ°€ λ…λ¦½μ μœΌλ‘œ 움직인닀고 κ°€μ •ν•˜κ³ , ν•΄λ‹Ή Bone Space μ—μ„œ Character Space..

Game Dev/OpenGL ES 2023. 4. 26. 02:02
[OpenGL ES] 12κ°• : Object Picking, Ray Intersection, Bounding Volume, Arcball

이 κ°•μ˜λŠ” μœ νˆ¬λΈŒμ— 무료둜 κ³΅κ°œλ˜μ–΄ μžˆλŠ” ν•œμ •ν˜„ κ΅μˆ˜λ‹˜μ˜ 컴퓨터 κ·Έλž˜ν”½μŠ€ κ°•μ’Œλ₯Ό μ •λ¦¬ν•œ κΈ€μž…λ‹ˆλ‹€. μžμ„Έν•œ λ‚΄μš©μ€ κ°•μ˜λ₯Ό 직접 λ“€μœΌμ‹œκ±°λ‚˜ 책을 κ΅¬μž…ν•˜μ…”μ„œ 확인해 λ³΄μ„Έμš”. κ°•μ˜ μžλ£ŒλŠ” κΉƒν—™ 링크에 μ˜¬λΌμ™€ μžˆμŠ΅λ‹ˆλ‹€.μš”μ•½ : 1. 였브젝트 ν”Όν‚Ή(Object Picking)을 ν•˜λ©΄, 슀크린 μŠ€νŽ˜μ΄μŠ€μ—μ„œ Ray λ₯Ό z μΆ• λ°©ν–₯ μ•ˆμͺ½μœΌλ‘œ 쏜 λ‹€μŒ, 처음으둜 λΆ€λ”ͺνžˆλŠ” 였브젝트λ₯Ό μ„ νƒλ˜μ—ˆλ‹€κ³  μΈμ‹ν•œλ‹€. 이 Ray λ₯Ό Object Space 둜 λ°”κΎΈκΈ° μœ„ν•΄ 3번의 λ³€ν™˜(Screen -> Camera -> World -> Object)을 μ§„ν–‰ν•΄μ•Ό ν•œλ‹€(각 Ray 에 λŒ€ν•΄ Object λ³„λ‘œ Ray κ°€ 생성) 2. 였브젝트 ν”Όν‚Ήμ—λŠ” Ray Intersection(폴리곀 λ©”μ‹œμ—μ„œ Ray κ°€ μ‚Όκ°ν˜• μ•ˆμ— μžˆλŠ”μ§€ 체크) κ³Ό Boun..

Game Dev/OpenGL ES 2023. 4. 26. 01:42