问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

3D API的DirectX

发布网友 发布时间:2022-04-22 08:41

我来回答

1个回答

热心网友 时间:2023-07-01 16:38

3D API能让编程人员所设计的3D软件只要调用其API内的程序,从而让API自动和硬件的驱动程序沟通,启动3D芯片内强大的3D图形处理功能,从而大幅度地提高了3D程序的设计效率。几乎所有的3D加速芯片都有自己专用的3D API,目前普遍应用的3D API有DirectX、OpenGL、Glide、Heidi等。
微软公司专为PC游戏开发的API,与Windows操作系统兼容性好,可绕过图形显示接口(GDI)直接进行支持该API的各种硬件的底层操作,大大提高了游戏的运行速度,而且目前基本上是免费使用的。由于要考虑与各方面的兼容性,DirectX用起来比较麻烦、在执行效率上也未见得最优。 雾化效果是3D的比较常见的特性,在游戏中见到的烟雾、爆炸火焰以及白云等效果都是雾化的结果。它的功能就是制造一块指定的区域笼罩在一股烟雾弥漫之中的效果,这样可以保证远景的真实性,而且也减小了3D图形的渲染工作量。
Shading(着色处理)
绝大多数的3D物体是由多边形(polygon)所构成的,它们都必须经过某些着色处理的手续,才不会以线结构(wire frame)的面目示人。着色处理分为Flat Shading平面着色、Gouraud Shading高洛德着色。
1.Flat Shading (平面着色):平面着色是最简单也是最快速的着色方法,每个多边形都会被指定一个单一且没有变化的颜色。这种方法虽然会产生出不真实的效果,不过它非常适用于快速成像及其它要求速度重于细致度的场合。
2.Gouraud Shading (高洛德着色): 这种着色的效果要好得多,它可对3D模型各顶点的颜色进行平滑、融合处理,将每个多边形上的每个点赋以一组色调值,同时将多边形着上较为顺滑的渐变色,使其外观具有更强烈的实时感和立体动感,不过其着色速度比平面着色慢得多。 分为Texture Mapping材质贴图、Mip MappingMip贴图、Bump Mapping凹凸贴图、Video Texture Mapping视频材质贴图。
1.Texture Mapping (材质贴图):是在物体着色方面最引人注意、也是最拟真的方法,同时也多为目前的游戏软件所采用。一张平面图像(可以是数字化图像、小图标或点阵位图)会被贴到多边形上。例如,在赛车游戏的开发上,可用这项技术来绘制轮胎胎面及车体着装。
2.MIP MAPPING (MIP贴图) 这项材质贴图的技术,是依据不同精度的要求,而使用不同版本的材质图样进行贴图。例如:当物体移近使用者时,程序会在物体表面贴上较精细、清晰度较高的材质图案,于是让物体呈现出更高层、更加真实的效果;而当物体远离使用者时,程序就会贴上较单纯、清晰度较低的材质图样,进而提升图形处理的整体效率。LOD(细节水平)是协调纹理像素和实际像素之间关系的一个标准。一般用于中、低档显卡中。
3.Bump Mapping凹凸贴图
(1) 浮雕贴图(Emboss bump mapping)
这种处理方式不用lighting models,而直接使用贴图明暗度来产生凸凹效果.玩过photoshop的都知道可以使用alpha通道对RGB图像进行混合,这种透明度直接混合出来的明暗看起来象平的,为了使用图像随灯光看起来有立体感的明暗度,一种简单的办法就是使用Emboss bumpmapping.
实现如下:
就是将原alpha通道值一分为二,一个是原alpha通道的亮度减半,另一个是反转alpha通道并将uv偏移灯光一点点,最后将两个alpha通道加起来再与原RGB图像进行混合,这样看起来明暗度偏离灯光使看起来立体感较强.另外这样的处理方式还可混合顶点色.
优缺点:
CPU使用较多,计算uv偏移值,可以直接用固定管道实现. 完全用贴图渲染,只实现了diffuse.
(2) 环境凹凸贴图(EMBM: Environment-mapped bump mapping)
这种贴图保存了和dv两个偏差值,最常见的是用在水的反射渲染中对反射图进行干挠.使水面看起来产生涟漪的效果. 就是说dv和dv将会加到顶点对应反射图的uv中. dx中可以设置bump矩阵对它调整得以实时变化.
优缺点:
CPU占用少,可以使用固定管道实现.效率问题主要是在反射图(也就是Environment map)的渲染占用上,当然也可以采用假的静态反射图.
(3) 法线图(Normal mapping)
这种是比较流行的实时凹凸贴图方法,原理很简单,就是多边形上每一象素点如果用不同的法向量进行光照模型运算,那么就可得到不同的凹凸明暗度.
实现方法:
就是将多边形的法线保存在高位图的RGB中.然后程序读取来在ps中取出RGB作为法线进行光照模型的计算即可.
法线图中的法线值一般是以贴图空间(也就是切线空间,U为tangent向量,V为binormal向量,n为normal向量)来存放的,所以灯光到顶点的向量要先转到切线空间后再与法线进行光照运算即可.
优缺点:
CPU使用不多,用点光源效果较好,需要硬件支持DotProct,光照实时变化.
(4)置换贴图(Displacement mapping)
这种需要硬件支持,在vs中真正改变几何顶点的位置,由此引起的几何细分需要处理大量的多边形,一般不能实时应用到.
(5) 自阴影(Self-shadowing bump maps)
法线图可以实现阴影动态变化,但实现不了自阴影,也就是说如果有凸块遮挡了光线,它不能实现遮挡产生的阴影.
一种叫horizon map的技术可以实现自阴影.这是一种从特定点向各方向记录可见水平高度(the elevation of the visible horizon)的纹理。
光源如果低于这个水平高度,就不会照亮对应的特定点。这可在切线空间对光源向量执行这种可见性检查,
就可以产生自阴影bump maps.
优缺点:
实现自阴影,占用过多纹理内存,计算量很大。
(6) 视差映射(Parallax mapping)
Parallax mapping也被称为"offset mapping"或"virtual displacement mapping"这种处理是将纹理的坐标向眼睛方向偏移一定的距离来实现立体视角感.
从渲染点出发到眼睛的斜射线上找到表面垂直距离等于渲染点对应的Parallax mapping高度值时,那么眼睛斜射线上到表面垂直相交的那点就是要偏移到的地方.(可参见前面所附链接中的图示)
优缺点:
视差映射跟EMBM一样也是调整贴图uv坐标的,不过它有两个约束条件:一是对应视差映射中的高度值二是到眼睛的射线. 从而随视角变化而变化,效果效率都很好. 而EMBM一般用正/余弦波来改变/dv后再去影响贴图坐标从而达到水的涟渏效果(这在前面有说)
(7) Z-correct bump mapping
这种是在ps中根据视线方向偏移Z值,使物体相交处会随着表面的凹凸情况发生变化而不仅仅表示为一条直线。
优缺点:
物体相交处通过z偏移表现凹凸变化,在pixel shader中修改Z值会禁止图形硬件的早期深度测试优化.
4.Video Texture Mapping视频材质贴图,这是目前最好的材质贴图效果。具有此种功能的图形图像加速卡,采用高速的图像处理方式,将一段连续的图像(可能是即时运算或来自一个AVI或MPEG的档案)以材质的方法处理,然后贴到3D物件的表面上去。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
为什么苹果手机勿扰模式还有电话打来? 为什么iphone阻止来电还是能打进来? 高分悬赏[北京五中分校]作息时间 有一本bl小说讲一个特种兵穿越,和军人结婚的,其中有一个片段是他在 一台电脑能配2块不同型号的内存条使用吗? MUGEN 谁有会死星的零子人物包?求发. mugen 求一个人物包,宇宙意志大蛇,不是准神的那个,是隔离的。最好... 公交有wifi了,是坐公交还是打车 翡翠和玛瑙区别 happybuswifi怎么连接 中国食人族在哪、、、? hip-hip-hooray怎么读 求助HIP 是什么热处理,具体怎么弄做 下水道疏通剂哪个牌子好?应该如何使用 hip-hop中文怎么读啊? 在人类的历史上,出现过哪些食人族? HIPHOP分几类,怎么练? 食人族在印尼的哪个省 有什么药水可以疏通下水道 hiphop街舞怎么练习 mac 怎么用终端命令启动mysql hiphop的唱法都有什么,怎样练习? 下水道堵了、有一种酸液可输通、叫什么液体 带了假发怎么发朋友圈 ACY-85自行反坦克炮有什么优点? HIP-HOP怎么学 食人族分布在哪个地区 下水道堵了,有什么特别管用的疏通剂 苏联研发的57毫米反坦克炮,真的能有效打击装甲坦... Hip—Hop 、是什么意思啊?有怎么读啊? 在中国的历史上是不是也存在着食人族? 下水管道疏通剂管用吗 如何从零开始学hiphop Sharp XV-Z17000A投影机的3D显示是否是裸眼3D(无... 想知道: 中国 食人族 在哪 抖音用户名字旁边紫色方块里的竖条闪电 怎样才算HIPHOP? 请问世界真的有食人族吗?在哪个洲,哪个国家?? 下水管道疏通剂会对管道有伤害吗? opporeno6拍抖音界面的闪电图标代表什么 什么是视差 索尼xr相当于什么档次 管道疏通剂多少钱 索尼xr为什么比kd贵 抖音被打⚡️符号是什么意思 40吨水3寸和4寸管道有什么区别吗? 子曰:“不教而杀谓之虐,不戒视成谓之暴,慢令致期... 抖音视频上的闪电是怎么加上去的 索尼(sony)xr-65x95j+65英寸+如何连接wifi? 疏通剂怎么疏通下水道?