1.1 KiB
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 = TextureCubem_width = sizem_height = sizem_depth = 1m_mipLevels = mipLevels- 通过
ToOpenGLFormat()解析上传格式 - 对六个 cubemap face 分别调用一次
glTexImage2D(..., level = 0, ..., data) - 根据
mipLevels > 1设置最小过滤器 - Wrap 固定设为
GL_CLAMP_TO_EDGE
重要限制
- 当前不会根据
mipLevels自动为所有 mip 级别分配存储。 - 也不会自动生成 mipmap。
- 如果传入非空
data,六个 face 会共享同一份初始数据。