본문 바로가기

전체 글63

URP Shader Study #1 (Queue, RenderType, Pass) // Shader 시작. 셰이더의 폴더와 이름을 여기서 결정합니다. Shader "URPTraining/URPBasic" { Properties { // Properties Block : 셰이더에서 사용할 변수를 선언하고 이를 material inspector에 노출시킵니다 } SubShader { Tags { //Render type과 Render Queue를 여기서 결정합니다. "RenderPipeline"="UniversalPipeline" "RenderType"="Opaque" "Queue"="Geometry" } Pass { Name "Universal Forward" Tags { "LightMode" = "UniversalForward" } HLSLPROGRAM #pragma prefer_hl.. 2023. 11. 29.
3D Game Shaders For Beginners - Deferred Rendering [번역] 원본 : https://lettier.github.io/3d-game-shaders-for-beginners/deferred-rendering.html Deferred Rendering | 3D Game Shaders For Beginners Interested in adding textures, lighting, shadows, normal maps, glowing objects, ambient occlusion, reflections, refractions, and more to your 3D game? Great! 3D Game Shaders For Beginners is a collection of shading techniques that will take your game visua letti.. 2023. 11. 14.
G-Buffer가 뭐지? 어떻게 생긴걸까? 한번 알아보자 일단 G-Buffer 에서 Buffer는 컴퓨터 과학에서 데이터를 일시적으로 저장하거나 임시로 보관하는 메모리 공간을 의미한다. G-buffer 는 그래픽렌더링에서 사용되어지며 렌더링 엔진이 여러 종류의 정보를 픽셀 단위로 저장하는데 있어 사용되는 버퍼이다. 간단히 말하자면 G-buffer는 컴퓨터가 3D 그래픽을 만들 때 필요한 정보를 잘 저장하는 '서랍장' 과 같다. G-Buffer는 시각적으로 표현하기는 조금 어려운데 그 이유는 실제로 보이는 그림이나 이미지가 아니라 컴퓨터 그래픽을 만드는 데 사용되는 데이터를 저장하는 '방식' 이여서 그렇다. 포토샵의 레이어나 채널 같은 느낌이라고 생각할 수 있겠다. 이것은 디퍼드 렌더링 방식에서 사용되는 기술로, 3D 장면을 그리는 데 필요한 다양한 정보들을 저.. 2023. 11. 14.
c#에서 Array 와 List의 차이점 배열과 리스트의 가장 큰 차이점은 '동적'으로 크기할당이 가능한가? 이다. 배열은 동적으로 크기 할당이 불가능하고 리스트는 가능하다. 처음 배열을 생성할 때 n개의 크기로 형성한다면 n개 이상의 크기로는 늘릴 수 없다는 것을 의미한다. 리스트는 Add, Remove 매서드를 이용해 크기를 자유롭게 조정할 수 있다. 그러면 리스트를 사용하는 것이 무조건 옳은 것일까? 그건 또 아니다. 배열(Array) 연속된 메모리 공간으로 이루어져 있어 메모리 관리가 용이하다 배열의 값은 index로 이루어져 있어 빠르게 해당 값을 찾을 수 있다 동적할당이 불가능하다 리스트(List) 포인터를 사용해 다음 데이터의 주소 값을 가지고 있기에 데이터 추가 삭제가 편리하다 포인터를 사용해 데이터 주소값을 가지고 있어야만 하기.. 2023. 11. 13.