전체 글142 [UE5] 라이트 Mobility 의 종류와 활용 가이드 언리얼 엔진의 모든 라이트는 Static, Stationary, Movable 세 가지 모빌리티 중 하나를 가집니다. 각 설정은 그림자를 생성하는 방식과 연산 비용에서 큰 차이를 보입니다. 1. Static (정적)특징 : 빛과 그림자 정보를 라이트맵(Lightmap)이라는 텍스처에 완전히 구워버립니다.장점 : 게임 실행 중 연산 비용이 거의 없어 성능상 가장 유리합니다.단점 : 한 번 구워진 그림자는 실시간으로 위치나 색상을 바꿀 수 없습니다.한계 : 움직이는 물체(캐릭터 등)는 이 그림자의 영향을 받지 못해 공간에서 둥둥 떠 보이는 현상이 발생합니다. 2. Stationary (고정)특징 : 정적인 배경에는 라이트맵을 사용하고, 움직이는 물체에는 실시간 그림자를 생성하는 하이브리드 방식입니다.장점 :.. 2026. 2. 3. [UE5] Directional Light 와 Sky Light 의 관계 언리얼 엔진 5에서 배경을 만들다 보면 이런 의문이 생깁니다. "태양(Directional Light) 각도를 바꿔서 노을을 만들었는데, 왜 그림자 속 물체는 여전히 파랗거나 어둡지?"이 문제를 해결하려면 Sky Atmosphere와 Sky Light의 긴밀한 '협업 관계'를 이해해야 하는데, 그 작동 원리를 깔끔하게 정리해 드리겠습니다. 1. 역할 분담 : 소스 제공자와 빛 전달자언리얼의 하늘 조명 시스템은 크게 두 단계로 나뉩니다.Sky Atmosphere (소스 제공자) 태양빛이 대기에 부딪혀 산란되는 물리적 현상을 계산합니다. 하늘의 색(낮의 파란색, 노을의 붉은색) 을 결정하지만, 이 컴포넌트 자체가 물체에 직접 빛을 쏘지는 않습니다. 즉, "하늘이 지금 무슨 색인지" 만 보여주는 배경화면 같.. 2026. 2. 3. 참조 반환(Return by Reference)의 이해와 활용 C++ 에서 함수 리턴 시 발생하는 복사 비용을 줄이고, 원본 데이터를 효율적으로 제어하는 원리에 대해 정리합니다. 1. 함수 리턴 시 '임시 복사본' 이 생성함수는 내부에서 return 문을 만나면, 반환할 값을 임시 메모리에 복사하여 생성해 둡니다. 이때 복사 비용이 1번 발생하게 됩니다.Item GetItem(){ return item_; // item_를 복사하여 '임시 객체'를 생성 후 반환}여기서 주의할 점은 item_가 클래스의 멤버 변수라 하더라도, 멤버 변수 원본 데이터가 직접 반환되는 것이 아니라 임시 객체를 거쳐서 반환된다는 점입니다. 따라서 이 임시 객체는 해당 문장이 끝나면 소멸하는 존재이므로, 외부에서는 참조 형태로 받을 수 없습니다.Item& a = GetItem(); /.. 2026. 1. 27. 언리얼5 단축키 모음 https://youtu.be/cnKp1HDYaJk?si=cfgTkXWu9biHfNKH • 편집창에서 g 키를 누르면 선택된 오브젝트의 외곽선이 사라짐 2026. 1. 13. 언리얼의 블루프린트란 무엇인가? 1. 말 그대로 청사진 (설계도)언리얼에서 블루프린트(Blueprint)는 우리말로 “청사진” 입니다.C++ 클래스는 텍스트 형태의 코드이지만, 여기에 블루프린트를 추가하면, 툴 상에서 시각적인 형태로 보여주기 때문에 해당 클래스를 눈으로 보면서 편집할 수 있게 되는 것입니다.예를 들면, 액터에 메시를 붙이고, 컴포넌트를 달고, 충돌과 값을 조정하고 ... 이 모든 것을 코드 없이 에디터에서 조립할 수 있게 해주는 것이 블루프린트입니다. 2. 블루프린트없는 액터액터 클래스를 만든 후에, 월드에 배치해서 컴포넌트 붙이고 값 바꾸고 여러개를 복제해서 쓸 수도 있습니다. 이러면 액터에 블루프린트를 추가한 인스턴스와 차이가 없는 것 아닌가 싶기도 합니다. "굳이 블루프린트라는 번거로운 과정을 거쳐야 할까?""그.. 2026. 1. 11. 베스트 프랙티스(Best Practice) : 전문적인 C++ 코드의 기준 '베스트 프랙티스(Best Practice, BP)'는 단순히 잘 작동하는 코드를 넘어, 가장 효율적이고, 안정적이며, 협업에 최적화된 코드를 작성하기 위한 업계 표준이자 검증된 안전 규칙을 의미합니다. BP는 수많은 명명 규칙, 초기화 원칙, 설계 패턴 등을 포함하는 광범위한 개념입니다.개발자가 BP를 따라야 하는 근본적인 이유는 다음과 같습니다. 1. 안전성 (Safety) 확보BP는 코드 내부의 예측 불가능한 '함정'을 피하게 해줍니다. 안전성 BP는 매우 광범위하며, 아래는 개발자들이 반드시 지켜야 할 대표적인 안전 규칙의 예시입니다.컴파일 단계 안전 규칙 예시축소 변환 방지 : int 변수에 float 값을 넣는 등 잠재적인 데이터 손실을 유발하는 상황을 컴파일 단계에서 막아줍니다. 이 때문에 .. 2026. 1. 10. 이전 1 2 3 4 ··· 24 다음