unrealengine
-
[UE5] Garbage CollectionUE4 & UE5/Core 2023. 7. 5. 08:00
[UE5] Garbage Collection 최초 작성 : 2023-07-05 마지막 수정 : 2023-07-05 최재호 목차 1. 환경 2. 목표 3. 내용 3.1. 언리얼 GC 방식인 Mark and Sweep 3.2. GC 가 GameThread 히칭을 발생시키는 주요 지점 중 하나 3.3. UE5 GC 의 주요 단계 3.4. UE5 가 레퍼런스를 유지하는 방식 3.4.1. UCLASS 의 UPROPERTY() 멤버 변수에 등록 3.4.1.1. ReferenceTokenStream 의 생성 과정 3.4.2. FGCObject (UGCObjectReferencer) 를 상속 받기 3.4.2.1. UGCObjectReferencer 3.4.3. Cluster Root 에 등록 (GC 를 처리하는 대표 ..
-
[UE5] Shader ResourceBinding [3/3] - UniformBuffer와 리소스 바인딩UE4 & UE5/Rendering 2021. 9. 13. 07:00
[UE5] Shader ResourceBinding [3/3] - UniformBuffer와 리소스 바인딩 최초 작성 : 2021-09-13 마지막 수정 : 2021-09-13 최재호 목차 1. 환경 2. 목표 3. 내용 3.1. UE5의 UniformBuffer 의 정의 3.2. UniformBuffer 의 예제 3.2.1. UniformBuffer 매크로의 확장 3.3. 컴파일된 쉐이더의 리플렉션 데이터를 FShader에 저장 3.4. 실제 리소스들의 쉐이더 바인딩 3.5. 렌더링을 위해서 바인딩한 리소스들을 Graphics API 전달 3.6. 결론 4. 레퍼런스 1. 환경 Unreal Engine 5 (ue5-main branch acc8c5f399ca01f6f549108be1fb75381fecb..
-
[UE5] Shader Compile [2/3] - 쉐이더 컴파일 과정UE4 & UE5/Rendering 2021. 9. 10. 07:00
[UE5] Shader Compile [2/3] - 쉐이더 컴파일 과정 최초 작성 : 2021-09-10 마지막 수정 : 2021-09-10 최재호 목차 1. 환경 2. 목표 3. 내용 3.1. 쉐이더의 확장 3.1.1. PixelShader의 확장 3.1.1.1. Material Editor를 사용한 확장 3.1.1.2. PixelShader에서 Material Editor으로부터 작성한 노드의 연산 얻기 3.1.1.3. Material Detail 패널을 통한 확장 3.1.2. VertexShader의 확장 3.1.2.1. Vertex Input의 정의 3.1.2.2. VertexInput을 사용하는 약속된 함수 3.2. 컴파일에 사용할 템플릿 쉐이더 3.2.1. Material Shader 3.2...
-
[UE5] Shader [1/3] - 주요 클래스 파악UE4 & UE5/Rendering 2021. 9. 3. 07:00
[UE5] Shader [1/3] - 주요 클래스 파악 최초 작성 : 2021-09-03 마지막 수정 : 2021-09-03 최재호 1. 환경 Unreal Engine 5 (ue5-main branch acc8c5f399ca01f6f549108be1fb75381fecbca8) UE4.26.2 코드와 거의 유사하므로 UE4에 익숙하시면 보시는데 문제가 없을 것 같습니다. 일부 코드는 줄 바꿈 되거나 접은 상태로 중요한 코드를 위주로 설명하니 보실 때 참고해주세요. 또한 코드를 직접 붙여 넣어서 진행했기 때문에 작아서 잘 보이지 않는 코드는 클릭하여 봐주세요. 개인적으로 분석한 내용이라 틀린 점이 있을 수 있습니다. 그런 부분은 알려주시면 감사하겠습니다. 필요한 사전 지식 Graphic API 기본 이해 S..
-
[UE5] MeshDrawCommand (2/2)UE4 & UE5/Rendering 2021. 6. 20. 12:34
[UE5] MeshDrawCommand (2/2) 최초 작성 : 2021-06-20 마지막 수정 : 2023-05-17 최재호 Updated 2023-05-17 : DynamicMeshElement 가 어떤 MeshPass 에 추가될 것인지를 보여주는 추가그림1 추가 1. 환경 Unreal Engine 5 Early access UE4.26.2 코드와 거의 유사하므로 UE4에 익숙하시면 보시는데 문제가 없을 것 같습니다. 일부 코드는 줄 바꿈 되거나 접은 상태로 중요한 코드를 위주로 설명하니 보실 때 참고해주세요. 또한 코드를 직접 붙여넣어서 진행했기 때문에 작아서 잘 보이지 않는 코드는 클릭하여 봐주세요. 필요한 사전지식 1. NamedThread (TaskGraphSystem에 대한 이해가 있으면 더..
-
[UE5] MeshDrawCommand (1/2)UE4 & UE5/Rendering 2021. 6. 20. 11:58
[UE5] MeshDrawCommand (1/2) 최초 작성 : 2021-06-20 마지막 수정 : 2021-06-20 최재호 1. 환경 Unreal Engine 5 Early access UE4.26.2 코드와 거의 유사하므로 UE4에 익숙하시면 보시는데 문제가 없을 것 같습니다. 일부 코드는 줄 바꿈 되거나 접은 상태로 중요한 코드를 위주로 설명하니 보실 때 참고해주세요. 또한 코드를 직접 붙여넣어서 진행했기 때문에 작아서 잘 보이지 않는 코드는 클릭하여 봐주세요. 필요한 사전지식 1. NamedThread (TaskGraphSystem에 대한 이해가 있으면 더 좋음) 2. Actor와 ActorComponent의 관계 * 설명하는 문맥이 게임스레드로 변경되면 [게임스레드] 렌더스레드로 변경되면 [렌..
-
[UE4]Geometry ShaderUE4 & UE5/Rendering 2020. 4. 5. 02:46
아래 사이트의 Shader 파트를 참고하여 작성하였습니다. 출처 : https://zhuanlan.zhihu.com/p/100834351 환경 Unreal Engine 4.24.3 목표 1. Geometry Shader를 사용합니다. 2. 별도의 렌더 패스를 만들어서 예제를 출력해봅니다. C++에서 Geometry Shader 생성 // C:\Github\UE4\Engine\Source\Runtime\Renderer\Private\MyGS\MyGS.cpp #include "CoreMinimal.h" #include "SceneRendering.h" #include "RHICommandList.h" #include "Shader.h" #include "RHIStaticStates.h" #include "S..
-
[UE4]Compute ShaderUE4 & UE5/Rendering 2020. 3. 20. 09:07
아래 사이트의 Shader 파트를 참고하여 작성하였으며, 언리얼엔진 4.24.1에서 동작 가능하게 코드를 수정하였습니다. 출처 : https://zhuanlan.zhihu.com/p/36695496 환경 Unreal Engine 4.24.1 [UE4]Global Shader 파트에 계속해서 내용 추가 목표 1. Compute Shader로 Texture에 이미지를 그립니다. 2. 이미지를 그린 Texture를 렌더타겟에다 그려서 사용합니다. 3. StructuredBuffer를 사용해 봅니다. C++에서 ComputeShader 생성 class FGlobalComputeTestShader : public FGlobalShader { DECLARE_SHADER_TYPE(FGlobalComputeTestSh..