游戏开发论坛

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

研究卡通渲染之勾边方法。(续)

[复制链接]

59

主题

1104

帖子

1199

积分

金牌会员

Rank: 6Rank: 6

积分
1199
 楼主| 发表于 2005-3-7 21:08:00 | 显示全部楼层

Re:研究卡通渲染之勾边方法。(续)

这个不是HLSL,也不是CG,只是普通的VS,你要不用VS的话,直接在程序里面写也可以。
在渲染前先把vertex buffer锁住,在里面:
for( int i = 0; i < nVertexCount; i ++)
{
        float dot = D3DXVec3Dot(&pVertices.normal, &_lightdir);
        dot += 1;
        dot /= 2;
        pVertices.u1 = dot;
        pVertices.v1 = 0.5f;
}

132

主题

1341

帖子

1341

积分

金牌会员

Rank: 6Rank: 6

积分
1341
发表于 2005-3-7 21:18:00 | 显示全部楼层

Re:研究卡通渲染之勾边方法。(续)

lightdir是什么? 这些与材质有关吗?

59

主题

1104

帖子

1199

积分

金牌会员

Rank: 6Rank: 6

积分
1199
 楼主| 发表于 2005-3-7 22:04:00 | 显示全部楼层

Re:研究卡通渲染之勾边方法。(续)

没关系,lightdir是光的方向

132

主题

1341

帖子

1341

积分

金牌会员

Rank: 6Rank: 6

积分
1341
发表于 2005-3-8 18:31:00 | 显示全部楼层

Re:研究卡通渲染之勾边方法。(续)

也就是说与纹理混合有关吗?

132

主题

1341

帖子

1341

积分

金牌会员

Rank: 6Rank: 6

积分
1341
发表于 2005-3-8 18:36:00 | 显示全部楼层

Re:研究卡通渲染之勾边方法。(续)

http://bbs.gameres.com/showthread.asp?postid=128910
他的也是这样做的吗?

59

主题

1104

帖子

1199

积分

金牌会员

Rank: 6Rank: 6

积分
1199
 楼主| 发表于 2005-3-8 20:36:00 | 显示全部楼层

Re:研究卡通渲染之勾边方法。(续)

。。你看看左上角的帧数,19帧,如果你可以接受的话,你确实可以做到精确勾边

132

主题

1341

帖子

1341

积分

金牌会员

Rank: 6Rank: 6

积分
1341
发表于 2005-3-9 17:45:00 | 显示全部楼层

Re:研究卡通渲染之勾边方法。(续)

我说材质,不是勾边,我不太会Stencil。

132

主题

1341

帖子

1341

积分

金牌会员

Rank: 6Rank: 6

积分
1341
发表于 2005-3-9 20:50:00 | 显示全部楼层

Re:研究卡通渲染之勾边方法。(续)

你的勾边方法中“同样的把人物通过shader往法线方向拉伸得到一个扩大模型”,除了用VS,我用世界矩阵放大行吗?

59

主题

1104

帖子

1199

积分

金牌会员

Rank: 6Rank: 6

积分
1199
 楼主| 发表于 2005-3-9 21:35:00 | 显示全部楼层

Re:研究卡通渲染之勾边方法。(续)

scale matrix不行,除非你找到人物的中心,把中心平移到原点,然后乘上scale matrix再transform回原来的坐标才行。

6

主题

444

帖子

457

积分

中级会员

Rank: 3Rank: 3

积分
457
发表于 2005-3-10 10:12:00 | 显示全部楼层

Re: Re:研究卡通渲染之勾边方法。(续)

tarkey: Re:研究卡通渲染之勾边方法。(续)

。。你看看左上角的帧数,19帧,如果你可以接受的话,你确实可以做到精确勾边

呵呵,我来告诉你为何是19fps。
因为我用了大量的填充率来做:soft shadow,soft specular,soft edge rendering,另外,我用的不是render to target,而是StrechRect,因为这是唯一可以实现post processing MSAA的方法。但是这也就需要我的dest surface大小和back buffer一样,也就是1024x768。
还有,模型是直接从3dsmax中导出的,大概有30000-40000个faces。
顺便说一下,如果使用MRT的话,大概可以提升25%的性能。
明白了?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-25 00:59

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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