상세 컨텐츠

본문 제목

shader 프로그래밍

IT 일반

by 폴리프레임 2024. 9. 18. 08:35

본문

반응형
 

셰이더는 GPU에서 실행되는 프로그램이기 때문에, 다양한 그래픽 API그래픽 엔진마다 셰이더 언어가 다를 수 있습니다. 가장 널리 사용되는 셰이더 언어들은 다음과 같습니다:

1. GLSL (OpenGL Shading Language)

  • 사용되는 곳: OpenGL, WebGL
  • 특징: C 언어와 유사한 문법으로, 주로 OpenGL 기반의 그래픽 렌더링에서 사용됩니다. Three.js와 같은 WebGL 라이브러리에서도 GLSL을 많이 사용합니다.
  • 주요 용도: 3D 그래픽, 게임, 시각적 시뮬레이션

2. HLSL (High-Level Shading Language)

  • 사용되는 곳: DirectX (주로 Windows 환경)
  • 특징: Microsoft에서 개발한 셰이더 언어로, DirectX 기반의 응용 프로그램에서 사용됩니다. C와 유사한 문법을 사용하며, GLSL과 비슷한 방식으로 GPU의 버텍스, 프래그먼트(픽셀) 셰이더를 처리합니다.
  • 주요 용도: 게임 개발, 3D 애플리케이션, 주로 Windows 플랫폼 기반의 DirectX 환경

3. Cg (C for Graphics)

  • 사용되는 곳: 주로 Nvidia 그래픽 카드에서 사용 (현재는 더 이상 사용되지 않음)
  • 특징: Nvidia와 Microsoft가 공동으로 개발한 셰이더 언어였으며, OpenGLDirectX에서 모두 사용 가능했습니다. 그러나 현재는 Cg가 더 이상 지원되지 않으며, 대신 GLSL과 HLSL이 표준으로 자리잡았습니다.
  • 주요 용도: 그래픽 카드에서 고성능 3D 그래픽 처리

4. Metal Shading Language (MSL)

  • 사용되는 곳: Apple의 Metal API
  • 특징: Apple이 개발한 Metal API에서 사용하는 셰이더 언어로, iOSmacOS에서 주로 사용됩니다. 저수준 그래픽 API로 설계되어, 성능 최적화가 가능한 구조입니다.
  • 주요 용도: iOS, macOS 플랫폼에서의 3D 그래픽, 게임 개발

5. SPIR-V (Standard Portable Intermediate Representation for Vulkan)

  • 사용되는 곳: Vulkan API
  • 특징: SPIR-V는 직접적으로 작성되는 고수준 셰이더 언어라기보다는 바이트코드 형태의 중간 표현 언어입니다. 그러나 GLSL이나 HLSL 코드를 SPIR-V로 컴파일할 수 있습니다.
  • 주요 용도: Vulkan API는 차세대 고성능 그래픽 API로, 주로 GPU에서 높은 성능을 요구하는 애플리케이션이나 게임에서 사용됩니다.

6. Wgsl (WebGPU Shading Language)

  • 사용되는 곳: WebGPU API (웹에서의 차세대 그래픽 API)
  • 특징: WebGPU는 WebGL의 대체로 등장한 웹 기반 고성능 그래픽 API입니다. Wgsl은 WebGPU에서 셰이더를 작성하는 데 사용되는 언어입니다.
  • 주요 용도: 웹 기반 3D 그래픽, 웹 게임 및 시각화

7. Unity Shader Language (Cg/HLSL 변형)

  • 사용되는 곳: Unity 엔진
  • 특징: Unity에서는 HLSL과 유사한 문법을 사용하여 셰이더를 작성합니다. Unity의 셰이더 언어는 자체적인 구조를 가지고 있으며, Unity 엔진에서 특화된 셰이더 개발을 위한 API가 포함되어 있습니다.
  • 주요 용도: Unity 엔진을 사용한 게임 개발 및 3D 애플리케이션

8. Unreal Engine's Shading Language

  • 사용되는 곳: Unreal Engine
  • 특징: Unreal Engine에서는 HLSL 기반의 셰이더를 사용하며, Material Editor라는 비주얼 에디터를 통해 셰이더를 만들 수 있습니다. 따라서 직접 셰이더 코드를 작성하지 않고도 복잡한 셰이더를 구성할 수 있습니다.
  • 주요 용도: Unreal 엔진을 사용하는 게임 개발 및 시각적 효과

요약:

  • GLSL 외에도 HLSL, MSL, SPIR-V 등 다양한 셰이더 언어가 있습니다.
  • 셰이더 언어는 사용하는 그래픽 API플랫폼에 따라 다르며, 각 환경에 맞는 셰이더 언어를 선택해야 합니다.
  • Three.js와 같은 WebGL 기반의 라이브러리에서는 GLSL을 주로 사용하지만, DirectX 기반의 Windows 환경에서는 HLSL이, Apple 플랫폼에서는 MSL이 사용됩니다.

'IT 일반' 카테고리의 다른 글

법선, 법선 벡터, Normal, Normal Vector 이란  (1) 2024.09.21
Three.js에서 GLSL 사용  (1) 2024.09.18
.gitignore, .gitattributes  (1) 2024.09.16
경도, 위도, Longitude, Latitude  (0) 2024.09.12
navigator - BOM  (0) 2024.06.04

관련글 더보기