TECHARTNOMAD | TECHARTFLOWIO.COM

GRAPHICS PROGRAMMING 14

바인딩(Binding)과 바이닝(Binning)

그래픽스 프로그래밍을 공부하다 보면 "바인딩(Binding)"과 "바이닝(Binning)"이라는 용어를 접하게 된다. 두 용어는 비슷한 발음 때문에 혼동될 수 있지만, 의미하는 개념은 전혀 다르다. 이번 글에서는 이 두 용어의 차이점과 각각의 역할을 명확히 정리해보겠다.1. 바인딩(Binding) – GPU 리소스를 연결하는 과정바인딩(Binding)이란, 특정 리소스를 GPU에 연결(연동)하여 사용할 준비를 하는 과정을 의미한다. 그래픽스 API(OpenGL, Vulkan, DirectX 등)에서 셰이더, 텍스처, VBO(Vertex Buffer Object), 프레임버퍼 등을 사용할 때 반드시 필요한 단계로, GPU가 특정 데이터를 인식하고 활용할 수 있도록 지정하는 역할을 한다.예를 들어, Open..

UNROLL

UNROLL은 보통 그래픽스 셰이더 코드에서 사용되는 디렉티브 또는 어노테이션으로, 확장성 있는 루프를 최적화하기 위해 사용됩니다.디렉티브 컴파일러란 코드에 포함된 특별한 지시문(Directive)을 통해, 컴파일러에게 특정한 동작을 수행하도록 지시하는 메커니즘을 의미합니다. 이러한 지시문은 코드의 처리 방식을 조정하거나, 특정 조건 또는 최적화를 강제하는 데 사용됩니다.특정 코드 조각을 컴파일에 포함하거나 제외(예: #if, #define, #pragma). 특정한 최적화를 강제(예: unroll, inline). 프로젝트 또는 플랫폼 간 호환성을 보장.UNROLL은 루프를 컴파일 타임에 전개(unroll)하는 것을 요청하거나 강제하는 역할을 합니다.컴퓨터 그래픽스, 특히 GPU 셰이더 언어(HLSL,..

Early Z 이해하기.

모바일 GPU 아키텍처, 대부분 기본 Early Z 를 사용한다.Early Z는 fragment shader의 실행을 줄이기 위한 수단으로 Rasterization 단계 이후에 발생한다.Early-Z 알고리즘은 GPU가 셰이더를 실행하는 데 불필요한 노력을 낭비하기 전에 초기 깊이 검사를 수행하여 가려진 프래그먼트들을 제거함으로써 성능을 향상시킵니다.Arm의 Mali GPU는 이것을 사용하고 PowerVR의 GPU도 사용하고 퀄컴의 Adreno GPU도 사용합니다.Early Z 제거는 시야 위치에서 보이지 않는(가려진) 객체들의 불필요한 렌더 패스를 제거함으로써 빠른 은면 처리 방법을 제공합니다. Adreno GPU는 그려진 픽셀 채우기 속도의 최대 4배까지 가려진 픽셀들을 제거할 수 있습니다.Adren..

VMF Diffuse: A Unified Rough Diffuse BRDF 간단 해석.

참조. VMF Diffuse: A Unified Rough Diffuse BRDF diglib.eg.org VMF Diffuse는 2024년 유진 디옹(Eugene d'Eon)과 안드레아 바이들리히(Andrea Weidlich)가 발표한 통합 러프 디퓨즈 BRDF(Bidirectional Reflectance Distribution Function) 모델입니다. 이 모델은 von Mises-Fischer(NDF)를 사용하여 다양한 거칠기를 가진 표면에서의 빛 산란을 정확하게 표현. 주요 특징:통합 표현: 매끄러운 램버시안(Lambertian) 표면부터 중간 정도의 거친 높이 필드, 그리고 매우 거칠거나 다공성인 재질까지 원활하게 표현된다. von Mises-Fischer NDF 사용: 폰 미제스-피셔(V..

Bayer Matrix

Bayer Matrix는 디지털 이미지 처리에서 사용되는 디더링(dithering) 기법 중 하나입니다. 이는 1973년 Bryce Bayer가 개발한 행렬 패턴으로, 이미지의 색상이나 회색조를 표현하는 데 사용됩니다.기본 개념Bayer Matrix는 임계값 행렬(threshold matrix)을 사용하여 연속적인 톤을 이산적인 값으로 변환합니다. 이 과정을 통해 제한된 색상이나 회색조로도 더 풍부한 시각적 표현이 가능해집니다.주요 특징규칙적인 패턴 구조를 가짐2의 거듭제곱 크기의 행렬로 구성 (2x2, 4x4, 8x8 등)패턴의 반복으로 인한 시각적 균일성 제공계산이 비교적 단순하고 빠름활용 분야프린터 출력디스플레이 장치이미지 압축컴퓨터 그래픽스Bayer Matrix는 특히 제한된 색상 표현 능력을 가..

RHIDrawIndexedPrimitiveIndirect 또는 DrawMeshInstancedIndirect 와 GPU Buffer 개요.

IndirectDraw:드로우 콜(draw call)의 횟수를 줄여 렌더링 성능을 향상시키는 기술입니다.GPU에게 드로우할 인스턴스의 개수, 시작 인덱스 등을 명령어 형태로 전달하여, CPU의 개입을 최소화하고 GPU가 스스로 드로잉 작업을 처리하도록 합니다.Mesh Instance:하나의 메시를 여러 번 복제하여 화면에 렌더링하는 기술입니다.각 인스턴스는 위치, 회전, 크기 등의 변환 정보를 가지고 있어, 다양한 오브젝트를 효율적으로 생성할 수 있습니다.Constant Buffer:GPU가 쉽게 접근할 수 있는 메모리 공간으로, 쉐이더에서 자주 참조되는 데이터를 저장하는 데 사용됩니다.내용이 변경될 때마다 CPU에서 GPU로 데이터를 복사해야 하므로, 너무 자주 변경되는 데이터를 저장하기에는 비효율적입..

볼만 한 책들

킨들을 통해 읽었던 책들인데... 한국으로 돌아오고나서 킨들 접속을 하면 신규 디바이스에서 미국쪽 예전 계정으로 연동이 안되더라구요. 다행히 외국에 있을 때 사용하던 아이페드에 로그인이 되어있어서 계속 아이페드로만 볼 수 밖에 없게 되어버렸습니다. ㅜㅜ;그래픽스 프로그래머 또는 테크아티스트, 또는 이쪽 분야에 흥미가 있는 분이라면 읽어 볼만 한 책들이라고 생각하구요.저도 요즘 책을 집필 중인데... 독자층 + 책 에 대한 기획은 어렵네요.

GPU Driven with Fence & Barrier simple explanation

펜스 및 배리어로 구동되는 GPU 간단한 설명소개GPU Driven 환경에서 Fence와 Barrier는 GPU 작업의 동기화를 관리하는 중요한 메커니즘입니다. GPU 작업은 CPU와 독립적으로 실행되기 때문에, 작업이 언제 완료되었는지, 또는 특정 작업이 완료될 때까지 다른 작업을 기다려야 하는 경우 등을 효율적으로 관리해야 합니다. Fence와 Barrier는 이러한 동기화 문제를 해결하기 위해 사용됩니다.FenceFence는 GPU 작업의 완료 상태를 확인하는 데 사용되는 메커니즘입니다. 특정 작업이 완료되었는지 여부를 쿼리하여, 그 결과에 따라 다음 작업을 수행할 수 있도록 합니다.종류:Signal Fence: GPU 작업이 완료되면 설정되는 펜스입니다.Wait Fence: 특정 펜스가 시그널 상..

[올드스쿨]VBO WITH RE STRUCTURE EDGE.

마땅한 카테고리가 없어서 이 카테고리에 포스팅 했습니다. 좀 올드스쿨 한 내용이죠. 아티스트분들이 엣지를 관리하는 방법을 왜 생각해야하는지... 버택스 버퍼 오브젝트의 총 수량이 어떻게 결정 되는지 정도는 알고 시니어 아티스트가 되야 하는게 아닌가 싶었습니다. 개요. 아티스트 측에서 게임 엔진의 VOB에 대한 주름을 위한 UV 셸을 사용하여 VOB에 대한 이해를 돕기 위한 간단한 종이 조사입니다. 일반적으로 아티스트는 버텍스 작업을 줄이면서 모델 모양에 대한 아름다움에 초점을 맞추고 있습니다. 하지만 VBO를 사용하면 최종 결과물이 약간 달라집니다. UV-Shell 구조가 테두리 UV 에지로 관련되어 있는지 확인하십시오. -이 그래픽 교육을 받은 후 판구의 아티스트들은 이전과 달라질 것입니다. UV를 어..

[최적화]IPC with GPU.

작성자의 회고 : 2015년 PC 기반의 OPENWORLD MMORPG 개발을 담당하다가 2016년 다시 모바일 MMORPG 까지 담당하게 되었을 때로 기억 되는데요... 셰이더 최적화 메서드 중에서 가장 기초가 되는 부분을 살펴 봤던 기억이 나서 티스토리 페이지에 참조를 위해 리포스팅을 해 보게되었네요.작성일 : 2016년 8월. Installation of SDK.POWEVR  OVERVIEW.Excution time (Response time) : GPU 가 어떤 일을 완료 하는데 걸리는 시간. GPU Excution time : GPU 가 어떤 일을 수행 하는데 걸리는 실제 시간.(입출력 시간 제외) Clock period : 각 Clock cycle 을 완료 하는데 걸리는 시간. Clock cy..