Skip to main content

grender_cpu

1. 개요

grender_cpu 모듈은 Grap 엔진의 CPU 기반 렌더링 구현 라이브러리이다.

이 모듈은 grender 렌더링 인터페이스를 기반으로 CPU에서 동작하는 소프트웨어 렌더링 파이프라인을 구현한다.

렌더링은 다음 단계로 구성된다.

Vertex Processing
Primitive Rejection
Rasterization
Fragment Processing
Framebuffer Write

본 모듈은 GPU API(OpenGL, Vulkan 등)에 의존하지 않고 CPU 기반 렌더링 파이프라인을 독립적으로 구현한다.


2. 목적

grender_cpu의 목적은 다음과 같다.

  • CPU 기반 렌더링 파이프라인 구현
  • 엔진 렌더링 인터페이스(grender)의 CPU 백엔드 제공
  • 렌더링 알고리즘 검증 환경 제공
  • 테스트 가능한 렌더링 시스템 제공

3. 모듈 위치

소스 코드 위치

grender_cpu/

렌더링 모듈은 Grap 엔진의 다음 모듈과 연동된다.

gbase
gmath
gcore
ghost
ginter
grender
grender_cpu
ged
app

4. 모듈 구조

grender_cpu는 다음 하위 모듈로 구성된다.

grender_cpu
├─ common
├─ framebuffer
├─ pipeline
│ ├─ vertex_stage
│ ├─ clipper
│ ├─ fragment_ops
│ └─ raster
└─ device

각 모듈의 역할은 다음과 같다.

모듈역할
common렌더링 공통 데이터 타입
framebuffer색상 및 depth 버퍼
pipeline렌더링 파이프라인 단계
rasterprimitive rasterization
deviceCPU 렌더링 디바이스

5. 렌더링 파이프라인

현재 CPU 렌더링 파이프라인은 다음 흐름으로 동작한다.

CpuVertex


run_vertex_stage


ScreenVertex


trivially_reject_triangle_ndc


Rasterization


Fragment Operations


Framebuffer Write

6. 주요 구성 요소

6.1 Common

공통 데이터 타입을 정의한다.

대표 타입

CpuVertex
ScreenVertex

6.2 Framebuffer

렌더링 결과를 저장하는 버퍼를 제공한다.

구성 요소

ColorBuffer
DepthBuffer
FramebufferView

6.3 Pipeline

렌더링 파이프라인 단계 구현

구성

vertex_stage
clipper
fragment_ops

6.4 Raster

primitive rasterization 구현

지원 primitive

Triangle
Line
Point

6.5 Device

CPU 렌더링 디바이스 구현

대표 타입

CpuRenderDevice

7. 모듈 의존 관계

렌더링 모듈 간 의존 관계는 다음과 같다.

common


framebuffer


pipeline


pipeline/raster


device

8. 테스트

grender_cpu 모듈은 다음 테스트를 포함한다.

grender_cpu_smoke
grender_cpu_raster_pipeline

테스트 목적

테스트목적
smoke기본 렌더링 모듈 동작 확인
raster_pipelinerasterization 파이프라인 검증

9. 특징

grender_cpu 렌더링 시스템의 특징은 다음과 같다.

CPU 기반 렌더링

GPU API에 의존하지 않는 소프트웨어 렌더링 구현

모듈 분리

렌더링 단계별 모듈 구조

테스트 가능 구조

모듈 단위 테스트 제공

엔진 통합

grender 인터페이스 기반 렌더링 백엔드


10. 요약

grender_cpu는 Grap 엔진에서 사용되는 CPU 기반 렌더링 구현 모듈이다.

주요 구성

Common Types
Framebuffer
Pipeline
Rasterization
Render Device

이 모듈은 CPU 환경에서 동작하는 소프트웨어 렌더링 파이프라인을 제공한다.