球面如何切分成多个扇面?

近期在研究使用D3D开发三维显示场景,发现D3D支持的纹理图的大小有限制,这种限制一般由D3D引擎、显卡驱动和显卡硬件共同决定。
使用如下代码可以获取当前系统能支持最大纹理大小:

D3DCAPS9 caps;
 m_pd3dDevice->GetDeviceCaps(&caps);

WORD wMaxTextureWidth = caps.MaxTextureWidth;
 WORD wMaxTextureHeight = caps.MaxTextureHeight;

但是,如果一个球面几何对象上需要贴的纹理大小超出了此限制,如何解决?本人采用的是切分扇面的方法解决的,即根据wMaxTextureWidth、wMaxTextureHeight和纹理图大小动态创建一个有多个扇面组成的球面,并将原始纹理图按同样的方式分割成对应数量的长宽为wMaxTextureWidth*wMaxTextureHeight的纹理图,这样,每个扇面就对应一张分割后的纹理图片,其中,算法最困难的地方在于创建一个扇面总数=N*M的球面。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值