游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1469|回复: 1

SetVertexShader()与SetFVF()有什么不同么?

[复制链接]

48

主题

142

帖子

142

积分

注册会员

Rank: 2

积分
142
发表于 2007-4-24 22:15:00 | 显示全部楼层 |阅读模式
讨教当中......

119

主题

1367

帖子

1393

积分

金牌会员

Rank: 6Rank: 6

积分
1393
发表于 2007-4-24 23:10:00 | 显示全部楼层

Re:SetVertexShader()与SetFVF()有什么不同么?

都是顶点渲染,前者是可编程的,渲染的时候一部分指令由GPU解释,然后转化为渲染管线,FVF是固化的一套指令,顶点只能采用固定的模式渲染,顶点格式比较固定x,y,z,nx,ny,nz,u,v,u1,v1...

FVF所占数据量大,冗余数据多,VS所占的数据量就比较小了只需要x,y,z就可以了,nx,ny,nz,u,v都可以在shader里面计算,不过理论上固定管线的速度要比可编程管线的速度快,但可编程管线能实现复杂多变的渲染特效,各有各的好处,shader 取代固定管线只必然,只是时间的问题。由于大多数用户的配置还比较低(这也是集成显卡惹的祸,大多集成显卡都不支持shader2)为了争取更多的用户,很多3d游戏都保留固定渲染模式,我看未来一到两年也未必能完全废弃FVF,所以两套渲染模式却带来了巨大的额外的工作量。

我的理解不一定正确,这方面的文章很多,我目前对shader也还没认真去研究,处于初级阶段,还是请高手们来跟帖发表高见吧。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-26 17:02

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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