전체 글 468

HLSL 개요

옛날 버전의 DX에서는 기본적인 쉐이더를 제공해주었지만, 이제는 그렇지 않다.따라서 DX를 난생 처음 본다 하더라도 VertexShader와 PixelShader는 짤 줄 알아야 DX를 쓸 수 있다. VertexShader와 PixelShader는 다른 프로그램이다.VS가 쫙 실행이 되고, PS가 실행이 된다.따라서 각각의 main이 있어야 한다. HLSL은 얼핏보면 C++과 비슷하지만 분명한 차이가 있다.근래에는 Shader Programming이 점점 복잡해지기 때문에 쉐이더를 파일로 넣어준다. AppBase::CreateVertexShaderAndInputLayout( L"ColorVertexShader.hlsl", inputElements, m_colorVertexShader,..

그래픽스/DX11 2025.05.24

[HDProject]QuestSystem 초안 구상

확장 가능성을 열어둔 퀘스트 시스템을 제작하는 것이 목표이다. ScriptableObject 기반 구조조건 / 보상 모듈화이벤트 기반 처리UI 연동저장 / 로드 기능퀘스트 트리 기능 (연계 퀘스트)보상 타입 다양화 (경험치, 아이템, 등등)구글 시트 연동 클래스 사용시나리오 정렬 검색샘플 씬에서 퀘스트 잘 돌아가는지 확인하기퀘스트 UI 제작보상 Grant 시 인벤토리, 경험치 시스템 연동Addressables 기반 리소스 매핑 자동화UI에서 보상 미리보기 지원퀘스트 완료 시 팝업 애니메이션 연출전반적인 구조QuestSystem├── Core├── Runtime├── Editor├── UI├── Data└── Sheets DT 퀘스트 별 분할 기준 DT 구상하기 퀘스트 타입 연계UIAssetInfo->P..

DT 기능 에디터 만들기 GoogleSheetURLParser Class 설명

1. GoogleSheetURLParser Class 에디터 만들기 위해선 일단, 정규 표현식이란 개념을 숙지해야 한다.웬 뜬금없이 정규 표현식? 이라는 의문을 가지기 쉬운데,정규 표현식 사용을 통해 문자열에서 특정 패턴을 찾거나 검증하거나 추출하는 데 사용되는 개념이기 때문이다. 구글 스프레드 시트 URL 주소를 통해 특정 패턴을 찾아서, 변수 값을 추출한 뒤 그 변수 값으로 시트를 분별하여 DT를 가져올 것이기 때문이다. 정규 표현식이란,특정한 규칙을 가진 문자열의 집합을 표현하는 데 사용하는 형식 언어이다. 이러한 정규 표현식을 활용하기 위한 네임 스페이스는using System.Text.RegularExpressions 이다. 정규 표현식을 통해,Google Sheet URL에서 spreadShe..

GAS 시스템 시작

학습 실습https://github.com/kwon1232/GAS_Study/tree/main/Lecture/2/Source(Ability System Component)ASC 어빌리티 시스템 컴포넌트를 줄여서 ASC로 불린다.게임플레이 어빌리티 시스템을 관리하는 핵심 컴포넌트이다.게임플레이 어빌리티 및 다양한 작업을 관리하는 처리하는 중앙 처리 장치이다. 액터에 단 하나만 부착할 수 있다.액터는 부착된 ASC를 통해 게임플레이 어빌리티(GA)를 발동시킬 수 있다. ASC를 부착한 액터 사이에 해당 컴포넌트를 통해 GAS 시스템의 상호작용이 가능해진다. (Gameplay Ability)GA 게임플레이 어빌리티는 줄여서 GA(Gameplay Ability)로 불린다.ASC에 등록되어 발동시킬 수 있는 액..

UE5/GAS 2025.05.23

UE 5.1 시작 시 항상 마지막 프로젝트 로드 설정

왼족에 보이는 것 처럼 4.27과 5.1의 설정은 조금 다르다. 시작 시 항상 마지막 프로젝트 로드하기가 켜져있으면 에디터 실행 시 마지막으로 실행한 프로젝트가 실행된다.에디터가 안켜져서 당황해서 이것 저것 ini파일도 보고 뒤적거렸는데,저 설정 값만 꺼주면 된다. 5.1 사용시 VS 꼭 설치해야 할 구성 요소 필수 항목“C++를 사용한 데스크톱 개발” 워크로드MSVC v143 - VS 2022 C++ x64/x86 빌드 도구Windows 10 SDK (10.0.19041.0 이상) 추가로 권장CMake, ninja, Windows용 C++ CMake 도구.NET SDK (기본 포함됨) 참고: 왜 v143이 필요한가요?Unreal Engine 5는 Visual Studio 2022 기준으로 v143 ..

Canvas를 Dynamic과 static으로 분리

Canvas 컴포넌트 추가로 "레이어 분리" UI 캔버스에서 단일 요소가 변경되면 캔버스 전체에 대해 재탐색하는 오버헤드가 발생 캔버스는 그 위에 배치된 UI 요소를 나타내는 메시와 버텍스버퍼를 생성하고, UI 요소가 변경되면 메시를 재생성하며, 실제로 UI가 표시되도록 GPU에 드로우 콜을 발행 문제는 캔버스에서 하나 이상의 요소가 변경되면 해당 요소를 최적으로 그리는 방법을 파악하기 위해 전체 캔버스를 다시 한 번 분석해야 한다는 것 솔루션: 캔버스를 분할 동적으로 바뀌는 부분은 가능한 한 적은 영역, 작은 해상도로 관리

Unity 2025.05.18

박싱 언박싱

박싱과 언박싱을 이해하려면 참조 타입과 값 타입에 대한 정의가 필요하다. 값 타입(Value Type) 값 타입의 정의값 타입은 변수 자체에 데이터 값을 직접 저장하는 타입이다.이러한 변수는 스택(stack)메모리에 할당되며, 복사 시 실제 데이터 값이 복사된다. 값 형식의 변수는 해당 형식의 인스턴스를 포함한다.이는 해당 형식의 인스턴스에 대한 참조를 포함하는 참조 형식의 변수와 다르다.기본적으로 할당, 메서드에 인수 전달, 메서드 결과 반환 시 변수 값이 복사된다.값 형식 변수의 경우 해당 형식 인스턴스가 복사된다. Value types and reference types are the two main categories of C# types. A variable of a value type con..

.NET 과 C#의 아키텍처

C# 보다 .NET을 먼저 알고가자.C#은 단독으로 실행되지 않고,.NET 런타임 환경(ex. CLR, CoreCLR) 위에서 실행된다..NET C#, F#, VB 등 여러 언어를 지원하는 공통 플랫폼이며공통된 기능, API, 런타임 동작을 제공한다.따라서 C#의 코드 구조, 빌드, 실행 방식은 .NET의 구조와 깊이 관련되어 있다.공식문서 참고 내" .NET is a free, cross-platform, open-source developer platform for building many kinds of applications. It can run programs written in multiple languages, with C# being the most popular. It relies on ..

IEnumerator<T> 인터페이스

IEnumerator는 제네릭 컬렉션(List, HashSet 등)에서 데이터를하나씩 차례대로 읽을 수 있도록 반복 기능을 제공하는 인터페이스이다. C#의 IEnumerator의 정의이다.public interface IEnumerator : IDisposable, System.Collections.IEnumerator IEnumerator는 다음 두 인터페이스를 포함IEnumerator: 일반 반복자 (비제네릭)IDisposable: 자원을 정리하는 기능 간단히 비유하자면,Interface는 설계도이고,IEnumerator는 반복할 수 있는 객체를 만드는 설계도이다. 여기서 설계도라도 말하는 이유는 어떤 자료형이든 받을 수 있는 것이기 때문이다.이는 제네릭 프로그래밍을 기반으로 작성되었기 때문이다. ..

C#과 친해지기 위한 공부 방법

C#과 친해지기 위한 공부 방법C# 공부를 다음과 진행하고자 한다. 1. 알고리즘 + C# 공부C#으로 짜여진 알고리즘을 보고,내가 다시 짜보기 코테1. C++로 푼 문제 -> C# 다시 풀어보기2. C#로 푼 문제 -> C++ 으로 다시 풀어보기 2. 관련 정보는 공식문서 위주로MS/Unity 공식문서 위주로 보며, 공부 목록 레퍼런스는 기본서로 유명한 책 하나 잡고 보기.