游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2502|回复: 5

关于DIRECTX调色板的问题

[复制链接]

1

主题

5

帖子

7

积分

新手上路

Rank: 1

积分
7
发表于 2011-11-1 11:46:00 | 显示全部楼层 |阅读模式
一般建立调色板是一下步骤
// build up the palette data array
for (int color=1; color < 255; color++)
    {
    // fill with random RGB values
    palette[color].peRed   = rand()%256;
    palette[color].peGreen = rand()%256;
    palette[color].peBlue  = rand()%256;

    // set flags field to PC_NOCOLLAPSE
    palette[color].peFlags = PC_NOCOLLAPSE;
    } // end for color

// now fill in entry 0 and 255 with black and white
palette[0].peRed     = 0;
palette[0].peGreen   = 0;
palette[0].peBlue    = 0;
palette[0].peFlags   = PC_NOCOLLAPSE;

palette[255].peRed   = 255;
palette[255].peGreen = 255;
palette[255].peBlue  = 255;
palette[255].peFlags = PC_NOCOLLAPSE;

如果每次随机取颜色,有幅图片颜色正好在这调色板里面找不到会怎么样?

0

主题

398

帖子

577

积分

高级会员

Rank: 4

积分
577
发表于 2011-11-1 13:20:00 | 显示全部楼层

Re:关于DIRECTX调色板的问题

8位索引色就是用一个字节来做索引查表找色,你填充好了256个颜色的颜色表,怎么可能会找不到?

1

主题

5

帖子

7

积分

新手上路

Rank: 1

积分
7
 楼主| 发表于 2011-11-1 13:48:00 | 显示全部楼层

Re: 关于DIRECTX调色板的问题

假设我有一张全红颜色RGB(255,0,0)的图片,调色板正好没有红颜色,怎么办?这个是个假设填充随机概率上要小很多。

0

主题

398

帖子

577

积分

高级会员

Rank: 4

积分
577
发表于 2011-11-1 18:54:00 | 显示全部楼层

Re:关于DIRECTX调色板的问题

晕,举个例子说,班级里有四个人,每个人有个学号,学号[0]=张三,学号[1]=李四,学号[2]=王五,学号[3]=赵六,然后你问我,假设班级有个叫小明的,学号里正好没有,怎么办?

如果有这个人,在班级编学号时为什么不考虑小明呢?
难道你觉得一个班级的花名册在其他班级也适用?想要一份名单在全校适用?

1

主题

5

帖子

7

积分

新手上路

Rank: 1

积分
7
 楼主| 发表于 2011-11-1 22:10:00 | 显示全部楼层

Re:关于DIRECTX调色板的问题

谢谢,那也就是说随机填充调色板会有问题,也就是自己需要的颜色自己安排填入调色板是吧?

0

主题

398

帖子

577

积分

高级会员

Rank: 4

积分
577
发表于 2011-11-2 13:08:00 | 显示全部楼层

Re:关于DIRECTX调色板的问题

索引颜色图像通常是32位或者24位图像使用算法聚合颜色后得到的,比如一副图像出现了500种RGB颜色,通过数学算法,对相近颜色进行合并,最后得到一张只有256中颜色的颜色表,原始图像的RGB信息则转换为表中近似颜色的索引值.现在一些2D游戏也利用索引色做一些变色处理,比如一个RTS游戏中,人物肩章部分的颜色索引值集中索引表的16-32位置处,那么替换表中这段颜色人物的肩章也会改变颜色.这样一份图像换不同(但是是这个图像专用的)颜色表,就能实现不同的颜色风格.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-8 23:37

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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