728x90

2023/12 8

[Shader] ComputeShader 기초 스터디 노트

3개 버퍼 생성. input, output, result 이 때, input buffer를 shader에 알려주기 위한 ShaderResourceView 필요, 생성. outout buffer를 shader에 알려주기 위한 UnordedAddressView 필요,생성. 처리 결과를 받아올 때 result buffer에 output buffer의 리소스를 복사. Map() -> target pointer 로 result buffer 값 복사 -> Unmap() 이렇게 처리하는 이유는, output buffer와 result buffer의 BUFFER_DESC 가 다르기 때문. D3D11_BUFFER_DESC https://learn.microsoft.com/ko-kr/windows/win32/api/d3d..

[Unity] Shader Keyword 셰이더 키워드로 동작 조건부 작성

셰이더 키워드를 활용해서 조건부 분기 동작을 작성할 수 있다. #if defined(_MY_KEYWORD) // 이 사이에 KEYWORD 가 활성화 돼있을 때 처리를 추가. #endif float4 pos = v.vertex; #if defined(_CUSTOM_INSTANCING) float4x4 insMatrix = _instancingData[svInstanceID]; pos = mul(insMatrix, pos); #endif 셰이더를 위처럼 작성한 뒤 C# 코드에서는 EnableKeyword 함수를 호출해서 KEYWORD 를 활성화한다. 셰이더 키워드 https://docs.unity3d.com/kr/current/Manual/shader-keywords.html#declaring-keyword..

VisualStudio 소스코드 utf-8 인코딩 설정하기

종종 VisualStudio 로 작업을 하다보면 소스코드 인코딩이 제멋대로 바뀌는 경우가 있었음. Unity 관련 문제인지, SVN 관련 문제인지는 알 수 없음. 아무튼, VisualStudio 의 EditorConfig 를 생성해서 chatset 을 명시적으로 설정할 수 있음. 순서 1. VisualStudio 에서 Solution Explorer 열기 2. Solution Explorer (솔루션 탐색기)에서 프로젝트를 우클릭. 3. Context Menu 에서 [추가 > 새 EditorConfig(IntelliCode) 클릭. 4. 이 때 프로젝트 파일이 있는 경로에 .editorconfig 파일이 생성됩. 5. 메모장으로 .editorconfig 파일 열기 6. 아래 설정 텍스트 블럭을 추가. [..

경제 용어 설명 사이트 <경제신문읽는법>

경제신문읽는법 용어 개념과 설명이 가득한 사이트 스크랩. https://ecodemy.cafe24.com/m_stock.html [경제신문읽는법] - 우리 은하에서 제일 쉬운 주식공부 사이트 ecodemy.cafe24.com PBR(Price to Book Ratio : 주가순자산비율) https://ecodemy.cafe24.com/pbr.html [경제신문읽는법] - PBR이란? ■ PBR PBR이란? PBR(Price to Book Ratio : 주가순자산비율)은 주가를 주당순자산으로 나눈것입니다. 예를 들어 보겠습니다. "(주)별로 안 엄청나"의 주가가 2000원이고 주당순자산이 1500원이라면 주가순 ecodemy.cafe24.com ROE(Return On Equity, 자기자본 이익률) ht..

[Unity] Editor SceneView 에서 카메라 조작하기 (fov, position, rotation)

// Editor Scene View 에서 마지막 활성 Scene View 얻어오기. SceneView sceneView = SceneView.lastActiveSceneView; // FOV(Field of View) 수정 sceneView.cameraSettings.fieldOfView = 45f; // 특정 Object Transform 으로 Scene View 의 Camera 맞추기 (가령 메인카메라) sceneView.AlignViewToObject(camera.transform); // 특정 위치(바운드)로 Scene View Frame 이동시키기 sceneView.Frame(new Bounds(new Vector3(10f,0f,10f), Vector3.one * 10f), false); //..

RenderDoc, Intel GPA, PIX 그래픽스 프로그래밍 프로파일링, 디버깅 도구

RenderDoc RenderDoc은 MIT 라이선스의 무료 독립형 그래픽 디버거. Windows, Linux, Android, Nintendo Switch™ 플랫폼에서 Vulkan, D3D11, D3D12, OpenGL, OpenGL ES RHI를 사용하는 모든 애플리케이션을 빠르고 쉽게 단일 프레임을 캡처하고 상세히 살펴볼 수 있습니다. https://renderdoc.org/ RenderDoc I've written this post with a specific target audience in mind, namely those who have a good grounding in existing APIs (e.g. D3D11 and GL) and understand the concepts of mu..

[Unity] Addressable.LoadAssetAsync() 동기/비동기 처리

Addressables 클래스를 활용한 리소스 동기/비동기 로드 및 캐싱 처리 샘플 코드. // 비동기 처리 public void LoadAsync(string address, Action callback = null) where T : Object { string key = address; if(_loadedAssets.TryGetValue(key, out Object res)) { callback?.Invoke(op.Result); return; } var asyncOperation = Addressables.LoadAssetAsync(key); if (!asyncOperation.IsValid()) { Debug.LogError($"asset load failed : {address}"); retu..

[Unity] C# Finalizer 와 Garbage Collector 동작에 대한 정리

C++의 소멸자(Destructor)와 C#의 Finalizer의 공통점과 차이점 공통점 문법적으로 ~Class() {...} 로 코딩 클래스 객체가 소멸될 때 리소스를 해제하기 위해 사용 차이점 C++ 의 소멸자는 delete myObj; 와 같이 명시적으로 호출 시기를 정할 수 있음. C# 의 소멸자는 C++와 구분하기 위해 Destructor대신 Finalizer로 부름. Finalizer는 개발자가 그 호출을 명시적으로 결정할 수 없고, Garbage Collection 메커니즘에서 호출. 좀 더 구체적으로, C# 클래스에 Finalizer 가 존재하면, 해당 객체의 생성자 호출시 Finalization Queue라는 QC 내부 큐에 레퍼런스 추가. 이후, Managed Heap이 차서 GC처리를..

728x90
반응형