λͺ©λ‘μ 체 κΈ (1099)
KoreanFoodie's Study
μ΄ κ°μλ μ ν¬λΈμ 무λ£λ‘ 곡κ°λμ΄ μλ νμ ν κ΅μλμ μ»΄ν¨ν° κ·Έλν½μ€ κ°μ’λ₯Ό μ 리ν κΈμ λλ€. μμΈν λ΄μ©μ κ°μλ₯Ό μ§μ λ€μΌμκ±°λ μ± μ ꡬμ νμ μ νμΈν΄ 보μΈμ. κ°μ μλ£λ κΉν λ§ν¬μ μ¬λΌμ μμ΅λλ€. μμ½ : 1. μΊλ¦ν° μ λλ©μ΄μ μ ꡬνν λλ μΌλ°μ μΌλ‘ μ€μΌλ ν€μ λ§μ΄ μ¬μ©νλ€. κ° λΌλ μλ‘ λΆλͺ¨ μμ κ΄κ³λ₯Ό λ§Ίκ³ μμΌλ©° λΌμ μλ κ° vertex λ ν΄λΉ λΌμ Bone Space μ μ μλ μ’νλ₯Ό κ°μ§ μ μλ€. 2. Forward Kinematics λ Skeleton μ Hierarchy μμ λΆλͺ¨λ‘λΆν° μμκΉμ§, Top-Down traversal λ°©μμΌλ‘ μμ§μμ μ μ©νλ λ°©μμ΄λ€. κ° λΌκ° λ 립μ μΌλ‘ μμ§μΈλ€κ³ κ°μ νκ³ , ν΄λΉ Bone Space μμ Character Space..
μ΄ κ°μλ μ ν¬λΈμ 무λ£λ‘ 곡κ°λμ΄ μλ νμ ν κ΅μλμ μ»΄ν¨ν° κ·Έλν½μ€ κ°μ’λ₯Ό μ 리ν κΈμ λλ€. μμΈν λ΄μ©μ κ°μλ₯Ό μ§μ λ€μΌμκ±°λ μ± μ ꡬμ νμ μ νμΈν΄ 보μΈμ. κ°μ μλ£λ κΉν λ§ν¬μ μ¬λΌμ μμ΅λλ€.μμ½ : 1. μ€λΈμ νΈ νΌνΉ(Object Picking)μ νλ©΄, μ€ν¬λ¦° μ€νμ΄μ€μμ Ray λ₯Ό z μΆ λ°©ν₯ μμͺ½μΌλ‘ μ λ€μ, μ²μμΌλ‘ λΆλͺνλ μ€λΈμ νΈλ₯Ό μ νλμλ€κ³ μΈμνλ€. μ΄ Ray λ₯Ό Object Space λ‘ λ°κΎΈκΈ° μν΄ 3λ²μ λ³ν(Screen -> Camera -> World -> Object)μ μ§νν΄μΌ νλ€(κ° Ray μ λν΄ Object λ³λ‘ Ray κ° μμ±) 2. μ€λΈμ νΈ νΌνΉμλ Ray Intersection(ν΄λ¦¬κ³€ λ©μμμ Ray κ° μΌκ°ν μμ μλμ§ μ²΄ν¬) κ³Ό Boun..
μ΄ κ°μλ μ ν¬λΈμ 무λ£λ‘ 곡κ°λμ΄ μλ νμ ν κ΅μλμ μ»΄ν¨ν° κ·Έλν½μ€ κ°μ’λ₯Ό μ 리ν κΈμ λλ€. μμΈν λ΄μ©μ κ°μλ₯Ό μ§μ λ€μΌμκ±°λ μ± μ ꡬμ νμ μ νμΈν΄ 보μΈμ. κ°μ μλ£λ κΉν λ§ν¬μ μ¬λΌμ μμ΅λλ€. μμ½ : 1. μ€μΌλ¬ λ³νμ μ£Ό μΆ(Principal Axes)μ κΈ°μ€μΌλ‘ μΌμ κ°λμ νμ μ μ°μμ μΌλ‘ μ μ©ν λ μ¬μ©ν μ μλ€. κ·Έλ°λ° μ€μΌλ¬ λ³νμ κ²°κ³Όκ°μ κ΅νλ²μΉμ΄ μ±λ¦½νμ§ μλλ€. 2. ν€νλ μ 보κ°μ ν λ, μ€μΌλ¬ λ³νμ μ΄μν κ²°κ³Όλ₯Ό 보μ¬μ€ μ μλλ°, μ΄λ₯Ό ν΄κ²°νκΈ° μν΄ μΏΌν°λμΈμ μ¬μ©νλ€. μΏΌν°λμΈμ μ¬μμλ₯Ό μ΄μ©νλ€. 3. μΏΌν°λμΈμ μ΄μ©νλ©΄ μμμ μΆμ λν΄ π λ§νΌμ κ°λλ‘ μ /벑ν°λ₯Ό νμ μν€λ νμ νλ ¬μ μ½κ² λ§λ€μ΄ λΌ μ μλ€(qpq*). κ·Έλ¦¬κ³ μΏΌν°λμΈ μ¬μ΄μ 보..
μ΄ κ°μλ μ ν¬λΈμ 무λ£λ‘ 곡κ°λμ΄ μλ νμ ν κ΅μλμ μ»΄ν¨ν° κ·Έλν½μ€ κ°μ’λ₯Ό μ 리ν κΈμ λλ€. μμΈν λ΄μ©μ κ°μλ₯Ό μ§μ λ€μΌμκ±°λ μ± μ ꡬμ νμ μ νμΈν΄ 보μΈμ. κ°μ μλ£λ κΉν λ§ν¬μ μ¬λΌμ μμ΅λλ€.μμ½ : 1. μΆλ ₯ λ³ν© λ¨κ³μμλ Fragment Shader λ₯Ό ν΅ν΄ μ λ¬λ°μ ν½μ μ 보μ¬μ€μ§ λ§μ§, νΉμ μ΄λ»κ² 보μ¬μ€μ§λ₯Ό κ²°μ νλ€. μ΄λ 3 κ°μ§μ λ²νΌλ₯Ό μ¬μ©νλ€(Color Buffer, Depth Buffer, Stencil Buffer) 2. Z-buffering μ μ΄μ©ν΄ z κ°μ μ΄μ©ν 컬λ§μ μ€ν¬λ¦° μ€νμ΄μ€μμ μνν μ μλ€. μ΄λ, μ΄λ€ 물체λ₯Ό λ¨Όμ λ λλ§νλμ§μ κ΄κ³μμ΄ κ²°κ³Όκ°μ λμΌνλ€. 3. μν λΈλ λ©(Alpha Blending) μ μ΄μ©νλ©΄ ν¬λͺ ν μ€λΈμ νΈλ€μ΄ κ²Ήμ³μ Έ ..
μ΄ κ°μλ μ ν¬λΈμ 무λ£λ‘ 곡κ°λμ΄ μλ νμ ν κ΅μλμ μ»΄ν¨ν° κ·Έλν½μ€ κ°μ’λ₯Ό μ 리ν κΈμ λλ€. μμΈν λ΄μ©μ κ°μλ₯Ό μ§μ λ€μΌμκ±°λ μ± μ ꡬμ νμ μ νμΈν΄ 보μΈμ. κ°μ μλ£λ κΉν λ§ν¬μ μ¬λΌμ μμ΅λλ€. μμ½ : 1. Fragment Shader λ Texturing κ³Ό Lighting μ μννλλ°, Lighting μ λνμ μΈ λͺ¨λΈλ‘λ ν λΌμ΄ν λͺ¨λΈ(Phong Lighting Model μ΄ μλ€). 2. ν λΌμ΄ν λͺ¨λΈμμ, λΉμ 4 κ°μ§μ μμλ₯Ό λν νλ ¬λ‘ ννλλ€ : Diffuse(λλ°μ¬), Specular(μ λ°μ¬), Ambient(μ£Όλ³κ΄), Emissive(μ체 λ°κ΄). 3. Specular μ νμν View 벑ν°μ κ²½μ°, Vertex Shader κ° μλ 곡κ°μμ ꡬν View 벑..
μ΄ κ°μλ μ ν¬λΈμ 무λ£λ‘ 곡κ°λμ΄ μλ νμ ν κ΅μλμ μ»΄ν¨ν° κ·Έλν½μ€ κ°μ’λ₯Ό μ 리ν κΈμ λλ€. μμΈν λ΄μ©μ κ°μλ₯Ό μ§μ λ€μΌμκ±°λ μ± μ ꡬμ νμ μ νμΈν΄ 보μΈμ. κ°μ μλ£λ κΉν λ§ν¬μ μ¬λΌμ μμ΅λλ€. μμ½ : 1. Fragment Shader λ Texturing κ³Ό Lighting μ μννλ€. μ΄λ, μ°λ¦¬λ κ° ν½μ μ μ μ ν ν μ€μ³ κ°μ μ νλ κ³Όμ μμ Nearest point sampling κ³Ό Bilinear sampling μ μ ννμ¬ μ μ©ν μ μλ€. 2. ν μ€μ³λ§μ μν΄, ν μ€μ³ 곡κ°μ normalize μν€κ² λλλ°, μ΄λμ κ²°κ³Όλ₯Ό Texture Coordinates λΌκ³ λΆλ₯Έλ€. 1 κ°μ λ²μ΄λλ 곡κ°μ μ²λ¦¬νλ λ°©μμΌλ‘λ Clamp-to-Edge, Repeat, Mirrore..
μ΄ κ°μλ μ ν¬λΈμ 무λ£λ‘ 곡κ°λμ΄ μλ νμ ν κ΅μλμ μ»΄ν¨ν° κ·Έλν½μ€ κ°μ’λ₯Ό μ 리ν κΈμ λλ€. μμΈν λ΄μ©μ κ°μλ₯Ό μ§μ λ€μΌμκ±°λ μ± μ ꡬμ νμ μ νμΈν΄ 보μΈμ. κ°μ μλ£λ κΉν λ§ν¬μ μ¬λΌμ μμ΅λλ€.μμ½ : 1. Rasterizer(λμ€ν°λΌμ΄μ ) λ 5κ°μ§ μ²λ¦¬λ₯Ό μννλ€ : Clipping, Perspective division, Back-face culling, Viewport transform, Scan conversion μ΄ κ·Έκ²μ΄λ€. 2. ν΄λ¦¬νμ ν΄λ¦½ 곡κ°μ κ±ΈμΉ ν΄λ¦¬κ³€μ κ²½μ°, ν΄λ¦½ 곡κ°μ λ²μ΄λλ ν΄λ¦¬κ³€μ μΌλΆλ₯Ό μλΌλ΄λ κ²μ μλ―Ένλ€. Perspective division μ Clip 곡κ°μ NDC λ‘ λ³ννλ©°, Back-face culling μ ν΅ν΄ μΉ΄λ©λΌμμ 보μ΄μ§ μλ ..
μ΄ κ°μλ μ ν¬λΈμ 무λ£λ‘ 곡κ°λμ΄ μλ νμ ν κ΅μλμ μ»΄ν¨ν° κ·Έλν½μ€ κ°μ’λ₯Ό μ 리ν κΈμ λλ€. μμΈν λ΄μ©μ κ°μλ₯Ό μ§μ λ€μΌμκ±°λ μ± μ ꡬμ νμ μ νμΈν΄ 보μΈμ. κ°μ μλ£λ κΉν λ§ν¬μ μ¬λΌμ μμ΅λλ€. μμ½ : 1. Vertex Shader λ World transform, View transform, Projection transform μ ν΅ν΄ μ€λΈμ νΈ κ³΅κ°μ μλ, μ¬, ν΄λ¦½ μ€νμ΄μ€λ‘ λ³ννλ€. λν OpenGL μμ Shader λ₯Ό λ§λ€ λλ GLSL μ΄λΌλ μΈμ΄λ₯Ό μ¬μ©νλ€. 2. Vertex Shader μ μ λ ₯μΌλ‘ λ€μ΄κ°λ κ²μ Attributes μ Uniforms κ° μλ€. Attribute λ κ° Vertex λ§λ€ μ λ ₯λλ λ°μ΄ν°μ΄(e.g. position, normal, te..
μ΄ κ°μλ μ ν¬λΈμ 무λ£λ‘ 곡κ°λμ΄ μλ νμ ν κ΅μλμ μ»΄ν¨ν° κ·Έλν½μ€ κ°μ’λ₯Ό μ 리ν κΈμ λλ€. μμΈν λ΄μ©μ κ°μλ₯Ό μ§μ λ€μΌμκ±°λ μ± μ ꡬμ νμ μ νμΈν΄ 보μΈμ. κ°μ μλ£λ κΉν λ§ν¬μ μ¬λΌμ μμ΅λλ€.μμ½ : 1. λ λλ§ νμ΄νλΌμΈμ ν¬κ² λ€μκ³Ό κ°μ μμλ‘ μ§νλλ€ : Vertex Shader -> Rasterizer -> Fragment Shader -> Output Merger 2. Vertex Shader λ κ° μ μ μ λν μ 보λ₯Ό μ±μ Rasterizer λ‘ μ λ¬νλ€. Vertex Shader μ μν μ μ€λΈμ νΈ κ³΅κ°μμ μλ 곡κ°(World Transform)μΌλ‘, μλ 곡κ°μμ μΉ΄λ©λΌ 곡κ°(View Transform)μΌλ‘, λ§μ§λ§μΌλ‘ μΉ΄λ©λΌ 곡κ°μμ ν΄λ¦½ 곡κ°(Projection T..
μ΄ κ°μλ μ ν¬λΈμ 무λ£λ‘ 곡κ°λμ΄ μλ νμ ν κ΅μλμ μ»΄ν¨ν° κ·Έλν½μ€ κ°μ’λ₯Ό μ 리ν κΈμ λλ€. μμΈν λ΄μ©μ κ°μλ₯Ό μ§μ λ€μΌμκ±°λ μ± μ ꡬμ νμ μ νμΈν΄ 보μΈμ. κ°μ μλ£λ κΉν λ§ν¬μ μ¬λΌμ μμ΅λλ€. μμ½ : 1. μ€λΈμ νΈ κ³΅κ°μμ μ μλ 물체λ μν λ³νμ μ΄μ©ν΄ μλ κ³΅κ° μ’νκ³μμ ννν μ μλ€. μ΄λ₯Ό World Transform μ΄λΌκ³ λΆλ₯Έλ€. 2. μ€λΈμ νΈ κ³΅κ°μ μΆ u, v, n μ μλ 곡κ°μ μΆ x, y, z λ‘ λ§μΆ°μ£Όλ €λ©΄, u, v, n μ Transpose μν¨ νλ ¬μ κΈ°μ‘΄ μ€λΈμ νΈ μΆ νλ ¬μ κ³±ν΄ μ£Όλ©΄ λλ€. 3. μμμ μΆμ λν νλ ¬λ 2λ²κ³Ό λ§μ°¬κ°μ§λ‘ μ§ννλ©΄, μ’νκ³ μμ€ν μ μ½κ² λ³νν μ μλ€! μλ 곡κ°κ³Ό μ€λΈμ νΈ κ³΅κ° μ€λΈμ νΈκ° μ μλ μ’νκ³ μμ€ν μ μ°λ¦¬λ..