游戏开发论坛

 找回密码
 立即注册
搜索
楼主: PeakGao

TGA的问题,求助!!

[复制链接]

3

主题

19

帖子

19

积分

新手上路

Rank: 1

积分
19
 楼主| 发表于 2004-5-7 09:44:00 | 显示全部楼层

Re: Re: Re:TGA的问题,求助!!

这张tga如果我不将他的颜色进行还原,那么绘制在较亮的背景上(如白色)就会在周围出现黑圈。如果进行颜色还原,周围的黑圈消失了,但是中间的那些蓝色部分都变成白色了。请问那些编写tga绘制的朋友,怎么解决这个问题呀?

附:
所谓颜色还原是这个原理:大部分3D渲染软件在将效果图渲染成tga文件时,都是与背景颜色进行了合成。所谓还原就是要去掉那些背景的影响。假设背景颜色为(r0,g0,b0)
tga文件中某点的颜色为(r1,g1,b1,a1),设还原后的颜色为(r2,g2,b2,a1),根据alpha合成公式可得:
    a1*r2    (256-a1)*r0
r1=------- + ---------------
      256             256

所以
      256*r1 - (256-a1)*r0
r2=-------------------------------
                      a1
g2,b2算法类似。将tga里面的(r1,g1,b1)转换成(r2,g2,b2)就是颜色还原过程。经过这样处理的tga文件在绘图时,不会因为背景比较亮而导致周围有黑圈。

20

主题

473

帖子

502

积分

高级会员

Rank: 4

积分
502
发表于 2004-5-7 11:05:00 | 显示全部楼层

Re:TGA的问题,求助!!

........不要搞得这么复杂,你用其他软件打开就可以知道了
先搞清楚alpha通道是做什么用的先

3

主题

19

帖子

19

积分

新手上路

Rank: 1

积分
19
 楼主| 发表于 2004-5-7 12:46:00 | 显示全部楼层

Re: Re:TGA的问题,求助!!

secondage: Re:TGA的问题,求助!!

........不要搞得这么复杂,你用其他软件打开就可以知道了
先搞清楚alpha通道是做什么用的先



当然知道alpha通道是干什么的啦。
但是你有没有试过,就像上面的那个tga文件,如果不进行颜色还原,当绘制在比较暗的背景上时,效果不错,但是当绘制在如雪地之类的背景上时,就可以发现周围一大圈浅黑色的东西,特难看。
很想知道你们是怎么做的。

20

主题

473

帖子

502

积分

高级会员

Rank: 4

积分
502
发表于 2004-5-7 12:59:00 | 显示全部楼层

Re:TGA的问题,求助!!

混合的时候使用srcalpha,和invsrcalpha,不要用color分量来做混合因子
如果还不行,那么就是本身alpha channel就没有做好

3

主题

19

帖子

19

积分

新手上路

Rank: 1

积分
19
 楼主| 发表于 2004-5-7 18:29:00 | 显示全部楼层

Re: Re:TGA的问题,求助!!

secondage: Re:TGA的问题,求助!!

混合的时候使用srcalpha,和invsrcalpha,不要用color分量来做混合因子
如果还不行,那么就是本身alpha channel就没有做好


大哥,说得那么抽象,不明白,能不能具体点。
srcalpha?invsrcalpha?什么意思啊?真的看不懂呀。

0

主题

130

帖子

130

积分

注册会员

Rank: 2

积分
130
发表于 2004-5-7 18:58:00 | 显示全部楼层

Re:TGA的问题,求助!!

"srcalpha?invsrcalpha?什么意思啊?真的看不懂呀。"
FinalColor=TextureColor*TextureAlpha+BackGroundColor*(1-TextureAlpha)
所有的颜色和ALPHA的值都在0-1之间
楼上的是这个意思吧,

3

主题

90

帖子

90

积分

注册会员

Rank: 2

积分
90
发表于 2004-5-7 21:13:00 | 显示全部楼层

Re:TGA的问题,求助!!

AcdSee里是没有加上Alpha通道的显示效果(不信你把改TGA转换成BMP以后便知),ps7里是Alpha以后的结果(这才是真正的混和后的效果),

另外你的TGA的Alpha做得不够好(当然我也知道3DS只能这样,能不能做到完全跟背景色没有关系我不知道,因为我不熟),所以出现了你说要还原的原因,按理说是没有必要还原的(ps中做的通道就没必要),至于还原后颜色不对我就不知道了,

不过你的公式里的256最好换成255,我知道用256是为了考虑运算效率,一般背景色都会取(0,0,0),公式变为,a1为0时,r2可以取任意颜色(可以统一为一个背景色)

      255*r1
r2=-------------
           a1

3

主题

90

帖子

90

积分

注册会员

Rank: 2

积分
90
发表于 2004-5-7 21:19:00 | 显示全部楼层

Re: TGA的问题,求助!!

以下是tga在ps7里加上白色背景的效果,明显Alpha通道有问题,有很淡的黑边缘

由于没有办法使用楼主的还原方法,所以看不到还原的效果,有空再试试
sf_200457211953.jpg

3

主题

90

帖子

90

积分

注册会员

Rank: 2

积分
90
发表于 2004-5-7 21:33:00 | 显示全部楼层

Re: TGA的问题,求助!!

我知道你为什么还原以后颜色会有变化了,你看看你原来的tga的Alpha通道就知道了
颜色不变才怪呢,中间蓝色的地方的alpha值不是255,根据公式
      255*r1
r2=-------------
           a1

r2肯定会很大,所以RGB三个颜色分量都可以大于或等于了255,所以就是白色的!
你的还原的想法我老早也想过,不过不久推翻了,所以还是要弄到正确的Alpha通道值
sf_20045721336.jpg

3

主题

90

帖子

90

积分

注册会员

Rank: 2

积分
90
发表于 2004-5-7 21:35:00 | 显示全部楼层

Re: TGA的问题,求助!!

由于你看不到alpha通道,我特意转了一个tiff格式,怎么转,还需要点技巧的:)
利用ps5:)就连ps这种图像处理的老大对某些格式处理都还不是十全十美滴

sf_200457213535.rar

171.36 KB, 下载次数:

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

本版积分规则

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

GMT+8, 2025-6-30 21:35

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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