RedGPU API - v3.0.0-Alpha
    Preparing search index...

    Class SkyBox

    3D 씬의 배경으로 사용되는 스카이박스 클래스

    큐브 텍스처나 HDR 텍스처를 사용하여 360도 환경을 렌더링하며, 텍스처 간 부드러운 전환 효과와 블러, 노출, 투명도 조절 기능을 제공합니다.

    const skybox = new RedGPU.Display.SkyBox(redGPUContext, cubeTexture);
    view.skybox = skybox

    아래는 Skybox의 구조와 동작을 이해하는 데 도움이 되는 추가 샘플 예제 목록입니다.

    Index

    Constructors

    Properties

    gpuRenderInfo: VertexGPURenderInfo

    GPU 렌더링 정보 객체

    modelMatrix: mat4 = ...

    모델 변환 행렬 (4x4 매트릭스)

    Accessors

    • get blur(): number

      스카이박스 블러 정도를 반환합니다.

      Returns number

      0.0에서 1.0 사이의 블러 값

    • set blur(value: number): void

      스카이박스 블러 정도를 설정합니다.

      Parameters

      • value: number

        0.0에서 1.0 사이의 블러 값

      Returns void

      값이 0.0-1.0 범위를 벗어나는 경우

    • get exposure(): number

      HDR 텍스처의 노출값을 반환합니다. 일반 큐브 텍스처의 경우 항상 1을 반환합니다.

      Returns number

      노출값 (HDR 텍스처) 또는 1 (일반 텍스처)

    • set exposure(value: number): void

      HDR 텍스처의 노출값을 설정합니다. 일반 큐브 텍스처에는 영향을 주지 않습니다.

      Parameters

      • value: number

        양수 노출값

      Returns void

      값이 양수가 아닌 경우

    • get opacity(): number

      스카이박스의 불투명도를 반환합니다.

      Returns number

      0.0에서 1.0 사이의 불투명도 값

    • set opacity(value: number): void

      스카이박스의 불투명도를 설정합니다.

      Parameters

      • value: number

        0.0에서 1.0 사이의 불투명도 값

      Returns void

      값이 0.0-1.0 범위를 벗어나는 경우

    Methods

    • 스카이박스를 렌더링합니다.

      이 메서드는 매 프레임마다 호출되어야 하며, 다음 작업을 수행합니다:

      • MSAA 상태 업데이트
      • GPU 렌더 정보 초기화 (첫 렌더링 시)
      • 파이프라인 업데이트 (필요 시)
      • 텍스처 전환 진행 상황 업데이트
      • 실제 렌더링 명령 실행

      Parameters

      Returns void

      // 렌더링 루프에서
      skybox.render(renderViewState);
    • 다른 텍스처로의 부드러운 전환을 시작합니다.

      Parameters

      • transitionTexture: CubeTexture | HDRTexture

        전환할 대상 텍스처

      • duration: number = 300

        전환 지속 시간 (밀리초, 기본값: 300)

      • transitionAlphaTexture: ANoiseTexture

        전환 효과에 사용할 알파 노이즈 텍스처

      Returns void

      // 1초 동안 새 텍스처로 전환
      skybox.transition(newTexture, 1000, noiseTexture);