Files
XCEngine/docs/api/XCEngine/RHI/OpenGL/OpenGLTexture/InitializeCubeMap.md

1.1 KiB

OpenGLTexture::InitializeCubeMap()

bool InitializeCubeMap(int size, int mipLevels, OpenGLFormat format, const void* data = nullptr);

作用

创建一个 cubemap 纹理。

参数

  • size: 每个 face 的边长。
  • mipLevels: 期望的 mip 数量元数据。
  • format: OpenGL 后端格式。
  • data: 初始像素数据。当前会把同一指针重复用于六个 face。

返回值

当前实现始终返回 true

当前实现行为

  • m_type = TextureCube
  • m_width = size
  • m_height = size
  • m_depth = 1
  • m_mipLevels = mipLevels
  • 通过 ToOpenGLFormat() 解析上传格式
  • 对六个 cubemap face 分别调用一次 glTexImage2D(..., level = 0, ..., data)
  • 根据 mipLevels > 1 设置最小过滤器
  • Wrap 固定设为 GL_CLAMP_TO_EDGE

重要限制

  • 当前不会根据 mipLevels 自动为所有 mip 级别分配存储。
  • 也不会自动生成 mipmap。
  • 如果传入非空 data,六个 face 会共享同一份初始数据。

相关文档