游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1961|回复: 2

关于GL中GL_ALPHA格式的纹理转换到DX的D3DFMT_A8格式

[复制链接]

14

主题

51

帖子

56

积分

注册会员

Rank: 2

积分
56
发表于 2006-4-22 11:22:00 | 显示全部楼层 |阅读模式
我有一个基于OPENGL项目要转换到DIRECTX.其中有一个纹理是A8格式的.就是没有RGB份量只有8位ALPHA.
在OPENGL下 glTexImage2D(GL_TEXTURE_2D, 0, GL_ALPHA, 64, 64, 0, GL_ALPHA, GL_UNSIGNED_BYTE, texbuf); 正常显示. 但是在DIRECTX下用CreateTexture(64, 64, 0, 0, D3DFMT_A8, D3DPOOL_SYSTEMMEM, &pTex,NULL),报ERROR3DERR_INVALIDCALL.这是怎么回事?有谁用过D3DFMT_A8吗?

难道要付出多3倍内存的代价转换成D3DFMT_A8R8G8B8...... [em4]

5

主题

41

帖子

41

积分

注册会员

Rank: 2

积分
41
发表于 2006-4-25 20:49:00 | 显示全部楼层

Re:关于GL中GL_ALPHA格式的纹理转换到DX的D3DFMT_A8格式

8位ALPHA就是D3DFMT_A8!你出现的这种情况可能是DX认为显卡不支持那种格式,可以用DX自带DXCapsViewer.exe程序察看纹理支持的格式!假如支持的话创建肯定能够成功!

14

主题

51

帖子

56

积分

注册会员

Rank: 2

积分
56
 楼主| 发表于 2006-4-26 20:20:00 | 显示全部楼层

Re:关于GL中GL_ALPHA格式的纹理转换到DX的D3DFMT_A8格式

确实是硬件(HAL)不支持.仅能Reference.
这方面GL就比DX强.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-24 08:35

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表