본문 바로가기

unrealengine6

[UE5]Blueprint : Meshs along a spline 시작하며 좀 쉬어가는 의미로 간단한 블루프린트를 작성해 볼까해요. 사실 UE는 소스 코드를 수정하지 않더라도 제공해주는 기능만으로 많은 것들을 할 수 있어요. UE에 포함된 스플라인 컴포넌트를 이용해서 커브를 따라 정적 메시가 생성되도록 할 거에요. 포장 도로, 펜스, 덩굴 등에 응용해서 쓸 수 있고 간단하게 구현할 수 있습니다. 스플라인 컴포넌트의 디테일 항목은 다루지 않을 거에요. 준비 먼저 뷰포트에 액터를 하나 가져다 놓고 다음과 같이 Instanced Static Mesh, Spline 컴포넌트를 추가해 줍니다 그러면 스플라인이 생성되는데 스플라인에 포인트를 추가하고 적당히 꼬불꼬불하게 만들어 줍니다 이러면 일단 준비는 끝났고 스크립트 작성 단계로 넘어갈게요. 블루프린트 스크립트 액터의 블루프린트.. 2023. 11. 6.
[UE5]Custom Shader : PART5_Editing GBuffer 시작하며 GBuffer는 디퍼드 렌더링에서 여러가지 정보들을 저장하고 각 셰이더에서는 이 정보들을 가지고 연산을 수행해요. UE에선 색상, 메탈릭, 스페큘러, 노말, 탄젠트, 뎁스 등등을 64Byte로 패킹해서 쓰고 있는데 이 크기를 넘는 것은 사실 피해야하지만 일단 어떻게 수정하고 어떻게 써야하는지 알아보기 위해 지난 글에서 추가한 커스텀 머티리얼 아웃풋의 첫번째 핀인 half4 형식의 CustomOutput01로 들어오는 값을 GBuffer에 넣어 볼게요. 머티리얼 프로토타입을 제작해서 테스트를 해보고 도메인에서 불표한 핀을 재활용하는 방식으로 셰이딩 모델을 완성하면 되겠습니다. 엔진 코드 수정하기 SceneTexturesConfig.h BEGIN_GLOBAL_SHADER_PARAMETER_STRUC.. 2023. 10. 26.
[UE5]Custom Shader : PART4_Custom Material Ouput 시작하며 셰이더 도메인을 보면 베이스 컬러, 노말, 탄젠트 등 여러 입력을 받는 핀들이 있고 앞선 글에서 커스텀 데이터 핀을 활성화 시켜서 커스텀 데이터 입력을 받을 수 있도록 했는데 만약에 작성 중인 커스컴 셰이딩 모델이 더 많은 입력을 필요로 한다면 도메인의 핀을 새로 만들어주는 작업이 필요합니다. 하지만 도메인에 직접 핀을 생성하는 건 엔진 코드를 생각보다 많이 수정 해야하니 이를 피하기 위해 커스텀 머티리얼 아웃풋을 만들어서 커스텀 셰이딩 모델의 입력을 추가해 볼게요. 엔진 코드 수정하기 MaterialExpressionMabiLitMaterialOutput.h 추가할 핀을 선언할 헤더 파일을 작성합니다 // [ CUSTOM ] Expanding Material Output #pragma once.. 2023. 10. 16.
[UE5]Custom Shader : PART3_Using Custom Data 시작하며 커스텀 셰이딩 모델을 추가한 뒤 막상 이를 사용해서 머티리얼을 만들려고 하면 파라미터를 전달할 핀이 부족한 경우가 생겨요. 그래서 이번에는 현재 머티리얼 도메인에 비활성화 돼있는 핀을 활성화하고 그 핀들에 노드를 연결하여 커스텀 파라미터를 셰이더에 전달해 보려고 해요. 앞서와 마찬가지로 먼저 엔진 코드를 수정하고 빌드한 후에 셰이더 코드를 수정해 보기로 하죠. Custom Data ##은 간단하게 몇몇 코드를 수정하는 것으로 활성화 됩니다. 이들은 스칼라고 셰이더에서는 half로 전달 돼요. 3차원 벡터를 전달하는 방법에 대해서는 나중에 얘기로 하기로 할게요. 엔진 코드 수정하기 Material.cpp 어떤 셰이딩 모델에서 커스텀 데이타 핀을 쓸지 알려줍니다 static bool IsProper.. 2023. 10. 10.