【3D技术宅公社】XR数字艺术论坛  XR技术讨论 XR互动电影 定格动画

 找回密码
 立即注册

QQ登录

只需一步,快速开始

调查问卷
论坛即将给大家带来全新的技术服务,面向三围图形学、游戏、动画的全新服务论坛升级为UTF8版本后,中文用户名和用户密码中有中文的都无法登陆,请发邮件到324007255(at)QQ.com联系手动修改密码

3D技术论坛将以计算机图形学为核心,面向教育 推出国内的三维教育引擎该项目在持续研发当中,感谢大家的关注。

查看: 3578|回复: 1

D3D 2D材質(PNG File)如何設定ColorKey

[复制链接]
发表于 2006-4-19 23:52:50 | 显示全部楼层 |阅读模式
D3D 2D材質(PNG File)如何設定ColorKey?
D3DXCreateTextureFromFileEx可以設定ColorKey,但是我必須知道哪一個顏色要設定為透空
可是PNG(或TGA,DDS)的圖檔格式我要如何知道他的Colorkey呢?
BOOL DoInit()
{
  D3DPRESENT_PARAMETERS d3dpp;
  D3DDISPLAYMODE        d3ddm;
  BYTE *Ptr;
#define PNG_WIDTH 256.0f
#define PNG_HEIGHT 256.0f
  sVertex Verts[4] = {
      {  0.0f,  0.0f, 1.0f, 1.0f, 0.0f, 0.0f },
      { PNG_WIDTH,  0.0f, 1.0f, 1.0f, 1.0f, 0.0f },
      {  00.0f, PNG_HEIGHT, 1.0f, 1.0f, 0.0f, 1.0f },
      { PNG_WIDTH, PNG_HEIGHT, 1.0f, 1.0f, 1.0f, 1.0f }
    };
  // Do a windowed mode initialization of Direct3D
  if((g_pD3D = Direct3DCreate8(D3D_SDK_VERSION)) == NULL)
    return FALSE;
  if(FAILED(g_pD3D->GetAdapterDisplayMode(D3DADAPTER_DEFAULT, &d3ddm)))
    return FALSE;
  ZeroMemory(&d3dpp, sizeof(d3dpp));
  d3dpp.Windowed = TRUE;
  d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
  d3dpp.BackBufferFormat = d3ddm.Format;
  d3dpp.EnableAutoDepthStencil = FALSE;
  if(FAILED(g_pD3D->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, g_hWnd,
                                  D3DCREATE_SOFTWARE_VERTEXPROCESSING,
                                  &d3dpp, &g_pD3DDevice)))
    return FALSE;
  // Create the vertex buffer and set data
  g_pD3DDevice->CreateVertexBuffer(sizeof(sVertex)*4, 0,                                VERTEXFVF, D3DPOOL_DEFAULT, &g_pVB);
  g_pVB->Lock(0,0, (BYTE**)&tr, 0);
  memcpy(Ptr, Verts, sizeof(Verts));
  g_pVB->Unlock();
  // Load the texture map
  D3DXCreateTextureFromFile(g_pD3DDevice, "Image1.png", &g_pTexture);
  return TRUE;
}
发表于 2006-4-20 10:10:27 | 显示全部楼层

我想这个问题在gameres上已经告诉你了,调用D3DXCreateTextureFromFileEx()函数,设置里面倒数第4个参数为你设定的colorkey就可以了。

但是我必須知道哪一個顏色要設定為透空 我对你这句话也不是很明白, 当然是设置你不想在玩游戏被人看见的那个背景的颜色为colorkey啦,不知道具体的值的话,打开photoshop,用吸管提取一下颜色看看它的置就可以了,还有很多的软件可以获取屏幕上颜色。

其实PNG格式图片有很大一个优势就是支持透明背景,从这一点而言,根本不需要设置colorkey,做成透明背景的图片直接调用即可

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|3D数字艺术论坛 ( 沪ICP备14023054号 )

GMT+8, 2025-6-24 04:45

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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