λͺ©λ‘μ 체 κΈ (1103)
KoreanFoodie's Study
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bSWr0k/btsafpCERrj/3hKyb8jfzbqqsXTBbozG81/img.jpg)
μ΄ κ°μλ μ ν¬λΈμ 무λ£λ‘ 곡κ°λμ΄ μλ νμ ν κ΅μλμ μ»΄ν¨ν° κ·Έλν½μ€ κ°μ’λ₯Ό μ 리ν κΈμ λλ€. μμΈν λ΄μ©μ κ°μλ₯Ό μ§μ λ€μΌμκ±°λ μ± μ ꡬμ νμ μ νμΈν΄ 보μΈμ. κ°μ μλ£λ κΉν λ§ν¬μ μ¬λΌμ μμ΅λλ€. μμ½ : 1. Vertex Shader λ World transform, View transform, Projection transform μ ν΅ν΄ μ€λΈμ νΈ κ³΅κ°μ μλ, μ¬, ν΄λ¦½ μ€νμ΄μ€λ‘ λ³ννλ€. λν OpenGL μμ Shader λ₯Ό λ§λ€ λλ GLSL μ΄λΌλ μΈμ΄λ₯Ό μ¬μ©νλ€. 2. Vertex Shader μ μ λ ₯μΌλ‘ λ€μ΄κ°λ κ²μ Attributes μ Uniforms κ° μλ€. Attribute λ κ° Vertex λ§λ€ μ λ ₯λλ λ°μ΄ν°μ΄(e.g. position, normal, te..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/oXF64/btr9Npxcoma/yb1sgUk1stkwfrET8W2goK/img.jpg)
μ΄ κ°μλ μ ν¬λΈμ 무λ£λ‘ 곡κ°λμ΄ μλ νμ ν κ΅μλμ μ»΄ν¨ν° κ·Έλν½μ€ κ°μ’λ₯Ό μ 리ν κΈμ λλ€. μμΈν λ΄μ©μ κ°μλ₯Ό μ§μ λ€μΌμκ±°λ μ± μ ꡬμ νμ μ νμΈν΄ 보μΈμ. κ°μ μλ£λ κΉν λ§ν¬μ μ¬λΌμ μμ΅λλ€.μμ½ : 1. λ λλ§ νμ΄νλΌμΈμ ν¬κ² λ€μκ³Ό κ°μ μμλ‘ μ§νλλ€ : Vertex Shader -> Rasterizer -> Fragment Shader -> Output Merger 2. Vertex Shader λ κ° μ μ μ λν μ 보λ₯Ό μ±μ Rasterizer λ‘ μ λ¬νλ€. Vertex Shader μ μν μ μ€λΈμ νΈ κ³΅κ°μμ μλ 곡κ°(World Transform)μΌλ‘, μλ 곡κ°μμ μΉ΄λ©λΌ 곡κ°(View Transform)μΌλ‘, λ§μ§λ§μΌλ‘ μΉ΄λ©λΌ 곡κ°μμ ν΄λ¦½ 곡κ°(Projection T..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/ceyzes/btr9Ak326he/nAHBOu4kF1BJYKrb4kFr01/img.jpg)
μ΄ κ°μλ μ ν¬λΈμ 무λ£λ‘ 곡κ°λμ΄ μλ νμ ν κ΅μλμ μ»΄ν¨ν° κ·Έλν½μ€ κ°μ’λ₯Ό μ 리ν κΈμ λλ€. μμΈν λ΄μ©μ κ°μλ₯Ό μ§μ λ€μΌμκ±°λ μ± μ ꡬμ νμ μ νμΈν΄ 보μΈμ. κ°μ μλ£λ κΉν λ§ν¬μ μ¬λΌμ μμ΅λλ€. μμ½ : 1. μ€λΈμ νΈ κ³΅κ°μμ μ μλ 물체λ μν λ³νμ μ΄μ©ν΄ μλ κ³΅κ° μ’νκ³μμ ννν μ μλ€. μ΄λ₯Ό World Transform μ΄λΌκ³ λΆλ₯Έλ€. 2. μ€λΈμ νΈ κ³΅κ°μ μΆ u, v, n μ μλ 곡κ°μ μΆ x, y, z λ‘ λ§μΆ°μ£Όλ €λ©΄, u, v, n μ Transpose μν¨ νλ ¬μ κΈ°μ‘΄ μ€λΈμ νΈ μΆ νλ ¬μ κ³±ν΄ μ£Όλ©΄ λλ€. 3. μμμ μΆμ λν νλ ¬λ 2λ²κ³Ό λ§μ°¬κ°μ§λ‘ μ§ννλ©΄, μ’νκ³ μμ€ν μ μ½κ² λ³νν μ μλ€! μλ 곡κ°κ³Ό μ€λΈμ νΈ κ³΅κ° μ€λΈμ νΈκ° μ μλ μ’νκ³ μμ€ν μ μ°λ¦¬λ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/wzBiE/btr9BHcQbA5/Uag2DAKWFKs4ODjHr9YA7k/img.jpg)
μ΄ κ°μλ μ ν¬λΈμ 무λ£λ‘ 곡κ°λμ΄ μλ νμ ν κ΅μλμ μ»΄ν¨ν° κ·Έλν½μ€ κ°μ’λ₯Ό μ 리ν κΈμ λλ€. μμΈν λ΄μ©μ κ°μλ₯Ό μ§μ λ€μΌμκ±°λ μ± μ ꡬμ νμ μ νμΈν΄ 보μΈμ. κ°μ μλ£λ κΉν λ§ν¬μ μ¬λΌμ μμ΅λλ€. μμ½ : 1. μνλ³νμ Scaling, Rotation, Translation νλ ¬μ κ²°ν©μΌλ‘, [L|t] λ‘ ννν μ μλ€. μ무리 λ§μ λ³νμ ν΄λ κ²°κ΅ λ¨μΌν [L|t] λ‘ νν κ°λ₯νλ€! 2. νλ ¬μμ μ΄μ νλ μΆκ°ν΄ νμ₯μ μν€λ©΄, Translation μ νλ ¬μ μ΄μ©ν΄ ννν μ μλλ°, μ΄λ λ― νμ₯λ νλ ¬μ μ’νκ³λ₯Ό λμ°¨μ’νκ³(Homogeneous Coordinates) λΌκ³ νλ€. 3. μμ μ΄ μλ μ μ κΈ°μ€μΌλ‘ 물체λ₯Ό νμ νλ €λ©΄, κΈ°μ€ μ μ μμ μΌλ‘ Translation ν,..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/4OieJ/btr9Atsufv0/jfSp9ebJg2Gk94qY9UQtW0/img.jpg)
μ΄ κ°μλ μ ν¬λΈμ 무λ£λ‘ 곡κ°λμ΄ μλ νμ ν κ΅μλμ μ»΄ν¨ν° κ·Έλν½μ€ κ°μ’λ₯Ό μ 리ν κΈμ λλ€. μμΈν λ΄μ©μ κ°μλ₯Ό μ§μ λ€μΌμκ±°λ μ± μ ꡬμ νμ μ νμΈν΄ 보μΈμ. κ°μ μλ£λ κΉν λ§ν¬μ μ¬λΌμ μμ΅λλ€.μμ½ : 1. κ·Έλν½μ€μμλ 물체λ₯Ό ν΄λ¦¬κ³€ λ©μμ μ‘°ν©μΌλ‘ νννλ€. μ΄λ ν΄λ¦¬κ³€μΌλ‘λ μΌλ°μ μΌλ‘ μΌκ°νμ μ¬μ©νλ€. 2. ν΄λ¦¬κ³€ λ©μλ€μ μ μ μ’νμ Normal μ Vertex Array μ ννλ‘ μ μ₯νλ€. 3. νλ©΄ λ²μ (Surface Normal)μ ν΄λ¦¬κ³€ λ©μ μΌκ°νμ Normal 벑ν°μ΄λ©°, μ μ λ²μ (Vertex Normal) μ νΉμ Vertex μμμ Normal 벑ν°μ΄λ€. 맀λν 물체λ₯Ό ννν λλ Vertex Normal μ΄ λ§€μ° μ μ©νλ€.ν΄λ¦¬κ³€ λ©μ (Polygon Mesh)ν΄..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/rEFXc/btr9mS7fDQS/axTEGc9bJscyKFhmo4hQ4k/img.jpg)
μ΄ κ°μλ μ ν¬λΈμ 무λ£λ‘ 곡κ°λμ΄ μλ νμ ν κ΅μλμ μ»΄ν¨ν° κ·Έλν½μ€ κ°μ’λ₯Ό μ 리ν κΈμ λλ€. μμΈν λ΄μ©μ κ°μλ₯Ό μ§μ λ€μΌμκ±°λ μ± μ ꡬμ νμ μ νμΈν΄ 보μΈμ. κ°μ μλ£λ κΉν λ§ν¬μ μ¬λΌμ μμ΅λλ€. μμ½ : 1. μ’νκ³λ Orthonormal ν κΈ°μ 벑ν°λ‘ μ μν μ μλ€. 2. 벑ν°λ₯Ό λ΄μ νλ©΄ μ λκ°μ μ½μ¬μΈ κ°μ κ³±ν κ²°κ³Όκ° λμ¨λ€. 90 λμΌ κ²½μ° 0 μ΄λ€! 3. μΈμ μ κ²½μ°, μ€λ₯Έμ λ²μΉμΌλ‘ λ°©ν₯μ ꡬν μ μλ€. μΈμ μ μ λκ°μ λ 벑ν°κ° λ§λλ ννμ¬λ³νμ λμ΄μ΄λ€. μ’νκ³ (Coordinate System and Basis) μ 벑ν°μ λ΄μ /μΈμ μ’νκ³λ μμ (origin)κ³Ό κΈ°μ (basis) λ‘ μ΄λ£¨μ΄μ§λ€. μμ κ·Έλ¦Όμλ 2D 곡κ°μ μ΄λ£¨λ κΈ°μ 벑ν°μ μ‘°ν©μ΄ λμ μλλ°, ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/Ta3JD/btr9poRQuwp/NvQMmipXsN8LyKkaF7gnA1/img.jpg)
μ΄ κ°μλ μ ν¬λΈμ 무λ£λ‘ 곡κ°λμ΄ μλ νμ ν κ΅μλμ μ»΄ν¨ν° κ·Έλν½μ€ κ°μ’λ₯Ό μ 리ν κΈμ λλ€. μμΈν λ΄μ©μ κ°μλ₯Ό μ§μ λ€μΌμκ±°λ μ± μ ꡬμ νμ μ νμΈν΄ 보μΈμ. κ°μ μλ£λ κΉν λ§ν¬μ μ¬λΌμ μμ΅λλ€. μμ½ : 1. κ·Έλν½μ€ μμ κ³Όμ μ λͺ¨λΈλ§ -> λ¦¬κΉ -> μ λλ©μ΄μ -> λ λλ§ -> ν¬μ€νΈ νλ‘μΈμ±μΌλ‘ λλμ΄ λ³Ό μ μλ€. 2. μ€μκ° κ·Έλν½μ€μμλ μ λλ©μ΄μ μ¬μ, λ λλ§, ν¬μ€νΈ νλ‘μΈμ±μ μ²λ¦¬νλ€. 3. κ²μμμ§μ κ·Έλν½μ€ API λ₯Ό μ¬μ©νλλ°, κ·Έλν½μ€ API λ GPU λ₯Ό κ°λνλλ° νμν μννΈμ¨μ΄ μΈν°νμ΄μ€λΌκ³ μκ°νλ©΄ λλ€! κ·Έλν½μ€ κ°λ‘ μ»΄ν¨ν° κ·Έλν½μ€μ μ°μ°μ μ€νλΌμΈκ³Ό λ°νμμΌλ‘ λλλλ°, modeling κ³Ό rigging, animation μ²λ¦¬λ κ·Έλν½ μν°μ€νΈλ€μ΄ ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/rS7VK/btr6N5g74BU/6gmp2CeKy4M6MQKlPmljmK/img.jpg)
μΈλ¦¬μΌ λ λλ§ μ΅μ ν : Visibility μ μ€ν΄λ£¨μ 컬λ§(Occlusion Culling) ν΅μ¬ : 1. λ λλ§μλ 컬λ§(Culling) μ΄λΌλ κ°λ μ΄ μλ€. μ΄ κ°λ μ, μΉ΄λ©λΌμ μμ μμ 보μ΄μ§ μλ λ μλ€μ κ΅³μ΄ λ λλ§ ν νμ μμ΄ κ±·μ΄λ΄λ(Culling) κΈ°λ₯μ΄λΌκ³ μκ°νλ©΄ λλ€. μ‘ν°μ Visibility λ Bounds Scale μ μ€μ ν΄ ν΄λΉ μ‘ν°λ₯Ό μΉ΄λ©λΌμ 보μ¬μ€ λ²μλ₯Ό μ€μ ν μ μλ€. 2. μ»¬λ§ λ°©λ²(Culling Method) μλ ν¬κ² 4 μ’ λ₯κ° μλ€ : Distance, View Frustum, Precomputed Visibility, Dynamic Occulusion. 3. Culling κ³Ό κ΄λ ¨λ μ 보λ€μ 'stat initviews' λͺ λ Ήμ΄λ‘ νμΈν μ μλλ°, μ΄ ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/tDoD9/btr6C1kDgGB/QcouiNpj6mRjGMglPKKR21/img.jpg)
[μΈλ¦¬μΌ] Visual Studio νκΈ κΉ¨μ§ (Log νκΈ κΉ¨μ§) ν΅μ¬ : 1. μμ λ°©νΈμΌλ‘ νκΈ λμ μμ΄ λ‘κ·Έλ§ λμ€κ² νκΈ° 2. μ»΄ν¨ν° νκ²½μ μΈμ½λ© μΈν μ λ°κΎΈκΈ° (λΆμμ ) 3. cl-filter λ₯Ό μμ ν΄μ 'μλ²½'νκ² ν΄κ²°νκΈ° ꡬκΈλ§ μ€ μΈ κ°μ§ λ°©λ²μ μ°Ύμκ³ , κ°κ°μ μ μ©ν΄ λ³Έ κ²°κ³Όλ₯Ό κΈ°λ‘νλ€. μμ λ°©νΈμΌλ‘ νκΈ λμ μμ΄ λ‘κ·Έλ§ λμ€κ² νκΈ° μ΄ λ§ν¬λ₯Ό μ°Έκ³ νμ. 첫λ²μ§Έ λ°©λ²μ΄λ€. κ·Όλ° νκΈλ λμμΌ λλ μν©μ΄λ©΄... μ΄λ κ² νλ©΄ μλλ€. λΉκ·Ό. μ»΄ν¨ν° νκ²½μ μΈμ½λ© μΈν μ λ°κΎΈκΈ° (λΆμμ ) μ΄ λ§ν¬μ λλ²μ§Έ λ°©λ²μ μ°Έκ³ νμ. μ λ νμ§ λ§κΈ°. κΈ°μ‘΄ νμΌλ€ μμ λ€ κΉ¨μ§λ€. cl-filter λ₯Ό μμ ν΄μ 'μλ²½'νκ² ν΄κ²°νκΈ° God μ€λ ₯μ λΆμ΄ μ¬λ¦¬μ λ§ν¬λ₯Ό ν΅ν΄ μμ μ μλνλ€. (..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cPog8V/btr5BKEBeQV/BmyvrwypdksH3g0QZZ9l1k/img.jpg)
TSharedRef λ₯Ό ν΄λμ€ λ©€λ² λ³μλ‘ μ μΈν λ μλ¬ ν΅μ¬ : 1. TSharedRef λ₯Ό μ μΈν λλ λ°λμ μ΄κΈ°νλ₯Ό ν΄ μ£Όμ. 2. TSharedRef λ₯Ό μ΄κΈ°νν λλ MakeShareable λ³΄λ€ MakeShared λ₯Ό μ¬μ©νμ. 3. μ΄κΈ°νκ° νλ€λ©΄ TSharedPtr λ‘ μ μΈνλ κ²λ λμμ΄λ€. TSharedRef λ₯Ό λ©€λ² λ³μλ‘ μ μΈν λ, λ§μ½ ν€λνμΌμ΄λ μμ±μμμ μ΄κΈ°νλ₯Ό ν΄ μ£Όμ§ μλλ€λ©΄ μλμ κ°μ μλ¬λ₯Ό λ§λκ² λλ€... void EnsureRetrievingVTablePtrDuringCtor(const TCHAR* CtorSignature) { UE_CLOG(!GIsRetrievingVTablePtr, LogCore, Fatal, TEXT("The %s constructor..