λͺ©λ‘μ 체 κΈ (1099)
KoreanFoodie's Study
μΈλ¦¬μΌ μλ¬ : Missing '*' in Expected a pointer type ν΅μ¬ : 1. UFUNCTION ν¨μμ μΈμλ‘, UStruct νμ μ΄ μλλ° ν¬μΈν° νμμ΄ μλ κ²½μ° 2. μΆν μΆκ° 3. μΆν μΆκ° μΈλ¦¬μΌ μλ¬ λ‘κ·Έ μ€ μλμ κ°μ λ΄μ©μ΄ λ° λκ° μλ€ : Missing '*' in Expected a pointer type μμ κ°μ μλ¬μ κ²½μ°, μ νν λ κ³ μΉλΌλμ§ λͺ°λΌ ν€λ©λκ° μλ€. κ·Έλ΄ λλ μλμ κ°μ μν©μ 체ν¬ν΄ 보μ! 1. UFUNCTION ν¨μμ μΈμλ‘, UStruct νμ μ΄ μλλ° ν¬μΈν° νμμ΄ μλ κ²½μ° λ€μκ³Ό κ°μ μμ λ₯Ό 보μ : UFUNCTION() void OnSomeEvent(UObject* InObject, UUserWidget& InWidget); ..
μ΄ κ°μλ μ ν¬λΈμ 무λ£λ‘ 곡κ°λμ΄ μλ νμ ν κ΅μλμ μ»΄ν¨ν° κ·Έλν½μ€ κ°μ’λ₯Ό μ 리ν κΈμ λλ€. μμΈν λ΄μ©μ κ°μλ₯Ό μ§μ λ€μΌμκ±°λ μ± μ ꡬμ νμ μ νμΈν΄ 보μΈμ. κ°μ μλ£λ κΉν λ§ν¬μ μ¬λΌμ μμ΅λλ€. μμ½ : 1. GPU ν μ λ μ΄μ μ μ΄μ©ν΄ 볡μ‘ν νλ©΄μ μ€μκ°μ μμ±ν μ μλλ°, λνμ μΌλ‘ λ³μ 맀ν(Displacement Mapping) κ³Ό PN-μΌκ°νμ΄ μλ€. μ€μ λ‘λ λ³μ 맀νμ λ§μ΄ μ¬μ©νλ€. 2. λ¨Όμ , 컨νΈλ‘€ μμ΄λλ ν¨μΉ(patch) μ 보λ₯Ό λ°μ, ν μ λ μ΄μ μ μΌλ§λ μκ² μͺΌκ° μ§νν μ§λ₯Ό ν μ λ μ΄ν°μκ² μλ €μ€λ€. κ·ΈλΌ ν μ λ μ΄ν°λ λ 벨μ λ§κ² ν¨μΉλ₯Ό μͺΌκ° μ μμ(Domain) μ μμ±νλ€. μμ± μμ΄λλ 2μ°¨μ λ©μμ κ° μ μ λ§λ€ μ¬κ°ν ν¨μΉμ ν μ μ μμ±ν ν, νμ΄νΈ 맡(..
μ΄ κ°μλ μ ν¬λΈμ 무λ£λ‘ 곡κ°λμ΄ μλ νμ ν κ΅μλμ μ»΄ν¨ν° κ·Έλν½μ€ κ°μ’λ₯Ό μ 리ν κΈμ λλ€. μμΈν λ΄μ©μ κ°μλ₯Ό μ§μ λ€μΌμκ±°λ μ± μ ꡬμ νμ μ νμΈν΄ 보μΈμ. κ°μ μλ£λ κΉν λ§ν¬μ μ¬λΌμ μμ΅λλ€. μμ½ : 1. λ² μ§μ΄ 곑μ μ, μ£Όμ΄μ§ μ μ (control point)μ μλ 곑μ μ΄λ€. μ μ΄ N κ° μμλ, N-1 μ°¨ λ² μ§μ΄ 곑μ μ λ§λ€ μ μλλ°, κ·Έλ₯ μ ν 보κ°μ μ¬λ¬ λ² λ°λ³΅ν΄μ μ·¨νλ©΄ λλ€. μ΄ κΈ°λ²μ λ μΉ΄μ€ν μ‘° μκ³ λ¦¬μ¦μ΄λΌκ³ νλ€. 2. ν μ λ μ΄μ μ, μ»΄ν¨ν°κ° 곑μ λ° κ³‘λ©΄μ μ²λ¦¬νλ λ°©μμΌλ‘, λ² μ§μ΄ 곑μ λ° κ³‘λ©΄μ μμ μ λΆμ΄λ ν΄λ¦¬κ³€μ μ‘°ν©μΌλ‘ μͺΌκ°λ κ³Όμ μ μλ―Ένλ€. κ°κ²©μ΄ μμ μλ‘ λ 맀λν 곑면μ λ§λ€ μ μμ κ²μ΄λ€. 컨νΈλ‘€ ν¬μΈνΈλ₯Ό κΈ°μ€μΌλ‘ μ ν 보κ°μ λ°λ³΅νμ¬ ν¨μΉ..
[μΈλ¦¬μΌ] μ΄λ€ κ°λ : μ΄λ»κ² νκΈ° ν΅μ¬ : 1. 2. 3. μΈλ¦¬μΌ μλ° μ¨λΌμΈ 2022 λ₯Ό νμ΄ λ³΄λ©΄μ, μ΅μ ν λ° νλ‘νμΌλ§κ³Ό κ΄λ ¨ν λ΄μ©μ΄ μμ΄ κΈ°λ‘μ°¨ μμ½ν΄ λ³΄λ € ν©λλ€. νμ¬ κ°λ° μ€μΈ λ²μ μ΄ μΈλ¦¬μΌ5 κ° μλλΌμ μμ¬μ΄ λΆλΆμ μμ§λ§... μΌλ¨ μμλλ©΄ λ§μ λμμ΄ λκ² μ£ π μΈλ¦¬μΌ μλ° μ¨λΌμΈ 2022 λ₯Ό 보며 λ΄μ©μ μ 리νμΌλ, κΆκΈνμ λΆμ ν μμμ 보μκΈΈ λ°λλλ€! π Hitching μ΄ μΈμ λ°μνλμ§ νμ νμ¬ μ΄λ€ λΆλΆμμ λ³λͺ©νμμ΄ λ°μνλμ§ νμ ν΄μΌ νλ€. μΉ΄νΈλΌμ΄λμ κ²½μ° GameThread μμ λ³λͺ©μ΄ λ°μνμ¬ μ΄λ₯Ό μ§μ€μ μΌλ‘ λ€λ£¨μλ€κ³ ν¨. κ°μμμλ λ€λ£¨μ§ μμμ§λ§... RenderThread μ κ²½μ°, PSO μΊμλ₯Ό ν΅ν΄ μ΅μ νλ₯Ό μ§ννμλ€κ³ νλ€. κ΄λ ¨ λ΄μ©μ 곡μ..
μΈλ¦¬μΌ μΈμ¬μ΄νΈ ν΅μ¬ : 1. μΈλ¦¬μΌ μΈμ¬μ΄νΈλ μ΅μ νλ₯Ό μν΄ νλ‘νμΌλ§μ μ½κ² λμμ£Όλ μ μ©ν ν΄μ΄λ€. 2. κ²μ μ°λ λ, λ λ μ°λ λ λ± μ΄λμμ λ³λͺ© νμμ΄ μΌμ΄λλμ§λ₯Ό νμ νμ 3. λͺ¨λ°μΌ κΈ°κΈ°λ‘λ utrace λ₯Ό λ΄λ³΄λ΄μ΄ λΆμμ ν μ μλ€! μΈλ¦¬μΌ μΈμ¬μ΄νΈλΌλ ν΄μ ν΅ν΄ μΈλ¦¬μΌ μ΅μ ν λ° νλ‘νμΌλ§μ ν λ² ν΄ λ³΄μ! (λ§μ½ μμ€λΉλμμ μμν κ²½μ°, UnrealInsight λͺ¨λμ λΉλνλ©΄ UnrealInsights.exe νμΌμ΄ μκΈ΄λ€. UnrealInsights-Win64-DebugGame λΌλ μ΄λ¦μΌ μλ μμ π ) μ ν리μΌμ΄μ μ μ€ννλ©΄ Trace Sessions(νΈλ μ΄μ€ μΈμ ) (1), Trace Store Directory(νΈλ μ΄μ€ μ€ν μ΄ λλ ν°λ¦¬) (2) μ μ΄, New Conne..
μ΄ κ°μλ μ ν¬λΈμ 무λ£λ‘ 곡κ°λμ΄ μλ νμ ν κ΅μλμ μ»΄ν¨ν° κ·Έλν½μ€ κ°μ’λ₯Ό μ 리ν κΈμ λλ€. μμΈν λ΄μ©μ κ°μλ₯Ό μ§μ λ€μΌμκ±°λ μ± μ ꡬμ νμ μ νμΈν΄ 보μΈμ. κ°μ μλ£λ κΉν λ§ν¬μ μ¬λΌμ μμ΅λλ€. μμ½ : 1. Phong λΌμ΄ν λͺ¨λΈμ local illumination μ λ§λ€μ΄λ΄λ λ°λ μ μ©νμ§λ§, μ μ μ‘°λͺ (Global Illumination) μ μμ°μ€λ½κ² λ§λ€μ΄λ΄κΈ° μν΄μλ, 3 κ°μ§ μΆκ°μ μΈ μμλ₯Ό κ³ λ €ν΄μΌ νλ€. μ¦, κ·Έλ¦Όμ κ΄μ (Shadow Ray), λ°μ¬κ΄(Reflection Ray), κ΅΄μ κ΄(Transmitted/Refraction Ray) μ λ°μν΄μΌ νλ€. 2. λ μ΄ νΈλ μ΄μ± κΈ°λ²μ μ¬κ·μ μΌλ‘ Ray κ°λ€μ κ³μ°νμ¬ μμμ κ³μ°νλ€. κ° Ray λ Primary Ray ..
μ΄ κ°μλ μ ν¬λΈμ 무λ£λ‘ 곡κ°λμ΄ μλ νμ ν κ΅μλμ μ»΄ν¨ν° κ·Έλν½μ€ κ°μ’λ₯Ό μ 리ν κΈμ λλ€. μμΈν λ΄μ©μ κ°μλ₯Ό μ§μ λ€μΌμκ±°λ μ± μ ꡬμ νμ μ νμΈν΄ 보μΈμ. κ°μ μλ£λ κΉν λ§ν¬μ μ¬λΌμ μμ΅λλ€. μμ½ : 1. μλμ° λ§€ν(Shadow Mapping) μ κ·Έλ¦Όμλ₯Ό μ²λ¦¬νκΈ° μν΄ Vertex Shader μμ light source λ‘λΆν° κ° surface μ κΉμ§μ κΉμ΄κ°κ³Ό visibility κ°μ μ μ₯νλ κΈ°λ²μ μλ―Ένλ€. 2. Pass 1 μμλ κ° νλ©΄κΉμ§μ κΉμ΄κ° z λ₯Ό, Pass 2 μμλ μ€μ μ κΉμ§μ 거리 d λ₯Ό μ μ₯νμ¬, μ΄λ₯Ό λΉκ΅ν΄μ Shadow μ¬λΆλ₯Ό κ²°μ νλ€. Nearest Sampling κ³Ό Bilinear Interpolation λ λ€ λ³ λμμ λμ§ μμΌλ―λ‘, PC..
μ΄ κ°μλ μ ν¬λΈμ 무λ£λ‘ 곡κ°λμ΄ μλ νμ ν κ΅μλμ μ»΄ν¨ν° κ·Έλν½μ€ κ°μ’λ₯Ό μ 리ν κΈμ λλ€. μμΈν λ΄μ©μ κ°μλ₯Ό μ§μ λ€μΌμκ±°λ μ± μ ꡬμ νμ μ νμΈν΄ 보μΈμ. κ°μ μλ£λ κΉν λ§ν¬μ μ¬λΌμ μμ΅λλ€. μμ½ : 1. κ³ ν΄μλ λ©μμμ, μ€μκ°μΌλ‘ λΌμ΄ν μ μ²λ¦¬νλλ°λ λΉμ©μ΄ λ§μ΄ λ€ κ²μ΄λ€. μ΄λ₯Ό ν΄κ²°νκΈ° μν΄, λ Έλ§ λ§€ν(Normal Mapping) κ³Ό μ ν΄μλ λ©μλ₯Ό μ¬μ©νμ¬ ν¨μ¨μ μΌλ‘ κ·Έλ΄λ―ν λΌμ΄ν ν¨κ³Όλ₯Ό λ§λ€μ΄λΌ μ μλ€. 2. λ Έλ§ λ§΅μ λ§λλ λμ€μ μΈ λ°©λ²μΌλ‘λ Height Field κ° μλ€. λ©μμμ ν μ μ μΈμ ν 4κ°μ μ μμ κ° 2κ°μ μ μ© μ§μ μ λ°©μ μμ λ§λ λ€μ, λ μ§μ 벑ν°μ λν΄ μΈμ μ μ·¨νλ λ°©λ²μ΄λ€. κ·ΈλΌ (x, y) μ’νμ λν z μ κ°μ λ°©μ μμΌλ‘ ννν ..
λμ μΌλ‘ μμ ― μμ±νκΈ° ν΅μ¬ : 1. UUserWidget μ CreateWidget, UWidget μ ConstructWidget μ μ¬μ©ν΄ μμ ―μ μμ±νμ. 2. μμ± ν, κ·Έλ₯ WidgetTree μ λΆμ΄κΈ°λ§ νλ©΄ λλ€. 3. AddChild κ°μ ν¨μλ‘ λΆλͺ¨μμ κ΄κ³λ₯Ό μ€μ ν μ μλ€! μ΄μ κΈμμ λμ μΌλ‘ μ‘ν° μ»΄ν¬λνΈλ₯Ό λ§λλ λ°©λ²μ κΈ°λ‘ν μ μ΄ μλλ°, μ΄λ²μλ μμ ―μ λμ μΌλ‘ λ§λλ λ²μ μμ보μ. μ½λλ μ¬μ€ λ§€μ° κ°λ¨νλ€ π μνλ μμ ― ν΄λμ€λ₯Ό UUserWidget μΌλ‘λΆν° μμλ°μ λ§λ€μλ€κ³ νμ. κ·ΈλΌ μλμ κ°μ μμΌλ‘ μ°λ©΄ λλ€ : // UTextBlock μ λμ μΌλ‘ μμ±νμ¬ WidgetTree μ λΆμΈλ€ UTextBlock* textBlock = WidgetTree->Co..