游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2496|回复: 4

请高手解答一下带ALPHA透明的模型的渲染顺序问题

[复制链接]

3

主题

4

帖子

8

积分

新手上路

Rank: 1

积分
8
发表于 2008-6-21 19:48:00 | 显示全部楼层 |阅读模式
我这里有一个人物模型.人物的面部是一块纹理,其中睫毛部分带有ALPHA通道值,因此在MAYA显示的效果上,该人物的睫毛就是一根根很细的样子.
但是我将模型导出后,在DX中渲染时,就出问题了.人物的睫毛的三角型面先被渲染,由于需要开启ALPHA通道,所以睫毛就先和背景场景先混合起来了,睫毛渲染完了,脸部才开始渲染.这个时候,脸部其实被睫毛的面给挡住了,所以渲染不出来脸部的颜色了.这时的睫毛是一块块地样子.
而我想达到的效果是:睫毛中透明的部分显示脸的颜色,但现在居然是背景颜色.不知道怎么解决这个问题.
不要让我把睫毛放在脸部其它部份之后渲染.因为它们都在一个子网格中,我不知道哪些三角形是睫毛,哪些是其它部分
请各位高手帮帮忙.感激不尽!

1

主题

19

帖子

23

积分

注册会员

Rank: 2

积分
23
发表于 2008-6-22 19:22:00 | 显示全部楼层

Re:请高手解答一下带ALPHA透明的模型的渲染顺序问题

在模型文件中,查找到你眉毛的材质和贴图啊。单独ALPHA混合那个子集就是拉。
问下,你是导出.x文件 然后在DX里面渲染的吧。

5

主题

686

帖子

697

积分

高级会员

Rank: 4

积分
697
QQ
发表于 2008-6-23 19:47:00 | 显示全部楼层

Re:请高手解答一下带ALPHA透明的模型的渲染顺序问题

你是不是把整个模型都用一张贴图覆盖啦?告诉你一个笨办法:打开Alpha测试,把Alpha值大于0(即带透明)的像素全部过滤掉,这样就把睫毛滤掉了,只画了其他不透明的部分,下来设置为把Alpha=0(即不透明)的像素过滤掉,这样就画出了睫毛。。但这样需要画两次,效率低下,你还是整理一下材质贴图,把睫毛专门搞成一个Subset才是正道

2

主题

141

帖子

141

积分

注册会员

Rank: 2

积分
141
发表于 2008-6-24 01:11:00 | 显示全部楼层

Re:请高手解答一下带ALPHA透明的模型的渲染顺序问题

3楼的兄弟说得对
凡是带alpha的要单独导出
比如场景中有N个静物中带小部分alpha的,应当叫美术将纹理带alpha的小部分另外导出成别的模型或者是别的subset(导出成别的模型更好),
这也是为了性能, 频繁的SetRenderState影响性能
另外,如果是skin mesh的叫美术别偷懒(比如薄剑只做一个面,在3DS里用双面渲染,正确的作法应当是做双面剑,毕竟3DS什么只是做渲染,不等于游戏!)
其实要实现细节的效果应当做高模烘赔到纹理(其实就是normal map),模型的纹理尽量少用alpha这是游戏先辈实际获得的经验,alpha其实最常用的地方是UI
真得要在场景中透明的还得自己排好序来渲染,比如A是不透明背景,B是个透明玻璃,C是你自己的瞄准镜应当先Render A、再B、再C

3

主题

4

帖子

8

积分

新手上路

Rank: 1

积分
8
 楼主| 发表于 2008-6-25 00:41:00 | 显示全部楼层

Re: 请高手解答一下带ALPHA透明的模型的渲染顺序问题

谢谢各位的回复。看来我只有做成一个新的SUBSET了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-22 04:51

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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