转发过去。Geforce FX 战争的曙光

自成立以来,微软已经能够做生活中最重要的两件事:及时分析异物并自己赚钱。很大程度上要感谢Microsoft,因为它是最极简主义思想的主要产生者,整个IT行业一直(并且现在)正在开发主要对Microsoft本身有利的开发路径。实施许多这样的想法的结果不仅是IT行业许多巨头的破产,而且是迅速的全球统一。 PC中的所有组件,从硬件到软件,都变得越来越通用和相似,失去了差异化的能力。因此,在2002年,当Microsoft再次将其顽皮的垄断小手放在3D行业上时,DirectX9规范在3D芯片制造商中掀起了一阵轰动……

众所周知,2003年是电影图形在PC上的到来。好吧,是的,就是这样:WinXP,需要安装DirectX9的DVD游戏,以及...具有某些着色器的相同视频卡。我们可以说有条件地认为DX9规范旨在消除在不同制造商的卡上渲染相同图像的结果差异但是,即使是这个规范也无法最终抑制NVIDIA。正确,否则,NVIDIA为什么要投资一些有前途的东西?

在这里,我们谈到促使我再次用棍子粘住尸体并仍然撰写此评论的原因。

危险:里面有很多大照片。只有第一个是两个兆字节。

也许您也不知道:

...
大卫·柯克增添了几分背的故事,以这种技术是如何进入的GeForce FX:

当我们做收购3DFX的,NV30又起,并有一个项目[代号融合 ]在3DFX正在进行中。团队合并,项目也合并了。我们让每个团队都去理解和介绍另一个人的体系结构,然后提出主张。然后,我们从两者中挑选最佳零件。

...
www.extremetech.com/computing/52560-inside-the-geforcefx-architecture/6

在发表这份声明时,GeForce FX 已经是一个值得关注的长期建设项目,而且上市时间还很晚。您可以说NVIDIA曾经避免过这一天

当所有的歌都静下来时


在我眼角之外




确实……在看到传说中的猛禽(GeForce FX 5800)时,第一件事冲入了我们的视线

图片

这是Radeon 9800旁边的两个插槽的怪物:

图片

要了解采用这种非凡解决方案的原因,我们必须仔细观察...

贴心



图片

GeForce FX虽然不是世界上第一个超标量GPU,但无疑是有史以来最复杂的超标量GPU(并保持了很长时间)。如此复杂,以至于缺少有关其内部体系结构中看似最简单的组件的准确信息。结果,他的市场准入被推迟了……被推迟了……最后,他来了,期待已久。

NV30:CineFX的曙光



确切地说,NV30的最复杂的体系结构部分称为CineFX(1.0)Engine。 NVIDIA的营销人员随后决定,它听起来比nfiniteFX III引擎更具吸引力。有争议,但事实如此。

的CineFX(谁不明白:电影 MATIC Ef中 FE CTS)是主要的3DFX工程师的优点(还记得轰动一时的T-Buffer)中。它包含您在家中渲染电影特效所需的一切。

您可能会问:初学者电影院需要什么?一切都很简单。入门电影院仅需要最必要的内容:使用浮点运算完全可编程的图形管线,支持Shader Model 2.0,允许您施加多达16个纹理。你很感兴趣吗?是的,这是这里:

  • 64/128 bit depth rendering — the Dawn of Cinematic Computing
    . , . , , 32- … , , … . , , ( ) «» , Floating Point Color Accuracy.

    , . , , , ShaderMark 2.1, , , : gpu. , , , ! gif, , , « »:



    , , . HDR- . HDR- — .

    ,


    , Tone mapping. : (), , . ( ), : , .

    , : , GeForce FX FP16, ( , ) .

  • Shader Model 2.0+
    -, «», . : … ?

    , , . . «» . , . , « — » , :

    , , :

    image

    , , , , : … , .

    ?
    3D- 3D- ( — " "). , «pixel-blaster'», , — . (-) , .

    , Unreal Quake II, API (API — «» ).

    , , Quake II API OpenGL 3D- . , . , :



    John Carmack : API Software, (CPU) . , . ( !), ( ). :



    ? . , , -. , 3D- (, , ).

    ?
    ( )! , , bump-mapping ( ) , . ! , , .

    DX6- Voodoo, :

    , 20 000 :



    Voodoo :



    , , Voodoo :



    ? , , , . (FPS). , . , 1352:



    , — :



    :



    , «» ? .. FPS , . , .

    , ? bump-mapping -. , . , - bump-mapping CPU ( ). , …

    , 3D- .

    ?
    , , , , -. , - , CPU. , , . , .

    — ?
    . Shader Model x.x (, SM2.0), — , . , SM, . .

    , -, — , , , , . , ( ) . , - «».

    , . NV30 Shader Model 2.0 ( SM2.0) — , , NV30 Pixel & Vertex Shaders 2.0. NVIDIA "" - DX9 .

    … , ? :)

    SM2.0 ( ) . , . SM1.x ARB assembly DirectX ASM, , , . SM2.0 C- , :


    ? , . NV30.


关于一种或另一种设备的性能的大多数和平讨论通常以某种方式落入主题“什么更重要:铁还是软件? »实际上,无论有多少人不想摆脱现实,但没有软件的硬件-就是硬件:)

在发布GeForce FX 5800NV30)时,面对Radeon 9700 ProATI R300的竞争对手在院子里逗了四分之一以上。那是2003年2月。如今,这样的死亡延误是相似的,这就是为什么我们可以放心地将2003年称为NVIDIA年。

就像这样:来了NV30到劳务交换,并且拥有DirectX9知识的职位空缺列表中没有一个。事实证明,NV30并没有迟到…… 实际上,第一个已知的DX9强大游戏(例如DooM3,HL2,NFS Underground 2)直到2004年才出现。期待已久的潜行者已经在2007年问世

我完全知道,没有什么可以比拟2003年审阅者卡片的性能了。坦率地说:撰写本文时,我对图片进行了很长时间的分析,但是我从未遇到过通过实时DX9测试进行过一次NV30评测基本上,DX9的功能已在3DMark中进行了测试...

一个与此相关的故事
, GeForce 4:

image

:


NVIDIA debuted a new campaign to motivate developers to optimize their titles for NVIDIA hardware at the Game Developers Conference (GDC) in 2002. In exchange for prominently displaying the NVIDIA logo on the outside of the game packaging, NVIDIA offered free access to a state-of-the-art test lab in Eastern Europe, that tested against 500 different PC configurations for compatibility. Developers also had extensive access to NVIDIA engineers, who helped produce code optimized for NVIDIA products


en.wikipedia.org/wiki/GeForce_FX_series


, , … , NV30 3DMark 2003 ( ), :



, , , . , , .

… ATI . , , , :

ATI Quake III optimizations




结果,在那些年里,您经常会听到类似的声音:


NV30's apparent advantages in pixel processing power and precision might make it better suited for a render farm, which is great for Quantum3D, but these abilities may mean next to nothing to gamers. Developers tend to target their games for entire generations of hardware, and it's hard to imagine many next-gen games working well on the NV30 but failing on R300 for want of more operations per pass or 128-bit pixel shaders.

techreport.com/review/3930/radeon-9700-and-nv30-technology-explored/6

而且,尽管同一个约翰·卡马克(John Carmack)可以很容易地就这一说法提出辩解,但无论如何,这清楚地证明了,没有软件,铁就什么也不是。而且,实际上,事实证明,NV30的着色器性能灾难性地主要取决于着色器代码的编写方式(即使指令序列也很重要)。那时NVIDIA开始以各种可能的方式推进NV30着色器代码的优化

为什么需要这个?然后,带有着色器实现NV30并不是那么简单:


Its weak performance in processing Shader Model 2 programs is caused by several factors. The NV3x design has less overall parallelism and calculation throughput than its competitors. It is more difficult, compared to GeForce 6 and ATI Radeon R3x0, to achieve high efficiency with the architecture due to architectural weaknesses and a resulting heavy reliance on optimized pixel shader code. While the architecture was compliant overall with the DirectX 9 specification, it was optimized for performance with 16-bit shader code, which is less than the 24-bit minimum that the standard requires. When 32-bit shader code is used, the architecture's performance is severely hampered. Proper instruction ordering and instruction composition of shader code is critical for making the most of the available computational resources.

...
en.wikipedia.org/wiki/GeForce_FX_series

也就是说,NV30体系结构不允许他使用SM2.0标准的代码充分展示自己。但是现在,如果您在执行之前先将指令改组一点,甚至可以用另一条指令替换它们(嗨,3DMark 2003)……但是在NVIDIA,他们知道:处理原因而不是后果要有效得多。

拿两个。NV35:黄昏

这不是一个新的体系结构解决方案,而是一项非常出色的改进。 NVIDIA的工程师如此狂热地纠正他们的错误,他们甚至继承了着色器的历史记录的正式支持Shader Model 2.0A(SM2.0 ),其被命名为NVIDIA的GeForce FX / PCX优化模型,支持DirectX 9.0a的。 NV35 当然不是万能,但他们记住了:



但是,由于NV30微体系结构的极端复杂性,NV35中一些非常有趣的细微差别保持不变。因此,在规范中,审阅者经常表示以下内容

Vertex pipeline design: FP Array
Pixel pipeline design: 4x2

这是我在本文开头提到的“最简单的组件”。是的,术语有些奇怪,但是还算不错。实际上,通过这种方式,营销人员只是试图向我们传达最简单的信息:芯片具有多少个顶点和像素管线(如果需要,可以使用着色器)。

像阅读过这样的规范的任何普通人一样,我的正常反应是:那么,有多少?所以整个事情是,没人知道:)似乎是图形芯片最普通的特性,您可以从中立即得出有关性能的结论吗?

好,是的,相同的ATI R300一切都是透明的:8像素和4顶点着色器...好吧,您可以运行相同的GPU-Z,按照既定的术语,他会告诉您NV35只有4像素和3顶点着色器但这并不完全准确,因为在电影游戏诞生之初,NVIDIA拥有了

替代看着色器
, . , , .

Vertex pipeline — .

"design", :


Whereas the GeForce4 had two parallel vertex shader units, the GeForce FX has a single vertex shader pipeline that has a massively parallel array of floating point processors


www.anandtech.com/show/1034/3


, , (NV35) , , . . ., NV35 , : « », , . , :) NV353. , !


The GeForce FX Series runs vertex shaders in an array


en.wikipedia.org/wiki/List_of_Nvidia_graphics_processing_units#GeForce_FX_.285xxx.29_Series


Pixel pipeline.

Vetrex pipeline NVIDIA, . NVIDIA , NV30 8 , TMU ( ). "8x1 design" , . , : DX9- …

, , «» NV30/NV35 4x2 (4 2 TMU ). NVIDIA :


«Geforce FX 5800 and 5800 Ultra run at 8 Pixels per clock for all of the following:

a) z-rendering
b) Stencil operations
c) Texture operations
d) shader operations

For most advanced applications (such as Doom3) most of the time is spent in these modes because of the advanced shadowing techniques that use shadow buffers, stencil testing and next generation shaders that are longer and therefore make apps “shading bound” rather than “color fillrate bound. Only Z+color rendering is calculated at 4 pixels per clock, all other modes (z, stencil, texture, shading) run at 8 pixels per clock. The more advanced the application the less percentage of the total rendering is color, because more time is spent texturing, shading and doing advanced shadowing/lighting»


www.beyond3d.com/content/reviews/10/5


, , :


Beyond3D:
We've seen the official response concerning the pipeline arrangement, and to some extent it would seem that you are attempting to redefine how 'fill-rate' is classified. For instance, you are saying that Z and Stencils operate at 8 per cycle, however both of these are not colour values rendered to the frame buffer (which is how we would normally calculate fill-rate), but are off screen samples that merely contribute to the generation of the final image — if we are to start calculating these as 'pixels' it potentially opens the floodgates to all kinds of samples that could be classed as pure 'fill-rate', such as FSAA samples, which will end up in a whole confusing mess of numbers. Even though we are moving into a more programmable age, don't we still need to stick to some basic fundamental specifications?

Tony Tamasi:
No, we need to make sure that the definitions/specifications that we do use to describe these architectures reflect the capabilities of the architecture as accurately as possible.

Using antiquated definitions to describe modern architectures results in inaccuracies and causes people to make bad conclusions. This issue is amplified for you as a journalist, because you will communicate your conclusion to your readership. This is an opportunity for you to educate your readers on the new metrics for evaluating the latest technologies.

Let's step through some math. At 1600x1200 resolution, there are 2 million pixels on the screen. If we have a 4ppc GPU running at 500MHz, our «fill rate» is 2.0Gp/sec. So, our GPU could draw the screen 1000 times per second if depth complexity is zero (2.0G divided by 2.0M). That is clearly absurd. Nobody wants a simple application that runs at 1000 frames per second (fps.) What they do want is fancier programs that run at 30-100 fps.

So, modern applications render the Z buffer first. Then they render the scene to various 'textures' such as depth maps, shadow maps, stencil buffers, and more. These various maps are heavily biased toward Z and stencil rendering. Then the application does the final rendering pass on the visible pixels only. In fact, these pixels are rendered at a rate that is well below the 'peak' fill rate of the GPU because lots of textures and shading programs are used. In many cases, the final rendering is performed at an average throughput of 1 pixel per clock or less because sophisticated shading algorithms are used. One great example is the paint shader for NVIDIA's Time Machine demo. That shader uses up to 14 textures per pixel.

And, I want to emphasize that what end users care most about is not pixels per clock, but actual game performance. The NV30 GPU is the world's fastest GPU. It delivers better game performance across the board than any other GPU. Tom's Hardware declared «NVDIA takes the crown» and HardOCP observed that NV30 outpaces the competition across a variety of applications and display modes.


www.beyond3d.com/content/reviews/10/24


?


, NVIDIA DX9- , . NV3x :

  • NV3x DX9, … !
  • NV3x 500!
  • NV3x DDR2!


, DX9 500 , 125 ( ) . - : . 0.13 ( ), . — .

, , ? DDR2 , Samsung : ! DDR2, : 128 . ?
, , NV3x 8 , TMU (8x1). . , , , . , = 32 .
8 , 8- 32- (=256 bit) . , 256 . 128- , , 8- 32- . fps.
? : 4 , 2 TMU (4x2). , , - :


Beyond3D:
Our testing concludes that the pipeline arrangement of NV30, certainly for texturing operations, is similar to that of NV25, with two texture units per pipeline — this can even be shown when calculating odd numbers of textures in that they have the same performance drop as even numbers of textures. I also attended the 'Dawn-Till-Dusk' developer even in London and sat in on a number of the presentations in which developers were informed that the second texture comes for free (again, indicating a 2 texture units) and that ddx, ddy works by just looking at the values in there neighbours pixels shader as this is a 2x2 pipeline configuration, which it is unlikely to be if it was a true 8 pipe design (unless it operated as two 2x2 pipelines!!) In what circumstances, if any, can it operate beyond a 4 pipe x 2 textures configuration, bearing in mind that Z and stencils do not require texture sampling (on this instance its 8x0!).

Tony Tamasi:
Not all pixels are textured, so it is inaccurate to say that fill rate requires texturing.

For Z+stencil rendering, NV30 is 8 pixels per clock. This is in fact performed as two 2x2 areas as you mention above.

For texturing, NV30 can have 16 active textures and apply 8 textures per clock to the active pixels. If an object has 4 textures applied to it, then NV30 will render it at 4 pixels per 2 clocks because it takes 2 clock cycles to apply 4 textures to a single pixel.


www.beyond3d.com/content/reviews/10/24


NVIDIA , ! , . , .

( ) FX, " — !" (Happy Gilmore), "… , !" :)



图片

无论如何,如果当时NVIDIA工程师的主要目标是生动地继承历史-无疑他们成功了!此外,NV35中出现另一个有趣的功能,竞争对手没有类似的功能:UltraShadow Technology,顺便说一句,稍后再讨论:)但是,让我们停止谈论漂亮的事物然后再回来

从天堂到地球


幸运的是,我没有惊悚片……(但您总是可以看一下博物馆的展览)。幸运的是,因为耳朵更贵。此外,他和他的兄弟GeForce FX 5900与具有简单需求的简单人的钱包不成比例。对于这些人,NVIDIA为NV31芯片上的GeForce FX 5600提供了选件,但我也没有。 现在,碰巧的是,在12年之后,我可以说,他们“被”这样的办公室存根吸引了: 但是,这并不嗡嗡!也就是说,除了被截断的NV31之外,还发布了更多与NV34相同的性能,而是结合了NV31









现在简单说一下什么是有趣的NV34不适合:(



  • NV30 / NV35采用4x2像素管线设计,仅剩4x1
  • 有趣的是,Everest和GPU-Z会告诉您有2个顶点着色器,而Wikipedia似乎是1。这里有封闭的FP Array体系结构;)
  • NV30 / NV35介绍,刚刚在图形管线一切的偏执压缩。这不仅包括纹理,还包括z缓冲区和帧缓冲区中每个像素的颜色值!因此在NV34中,这种复杂的4:1无损压缩算法不适合:)
  • 也不包括UltraShadow技术(仅GeForce FX 5900和5700型号)。但是不要生气,我会告诉你一切;)
  • 此实例的内存总线宽度高达64位(是的,就像旧的2D视频卡一样)

显然,几乎没有合适的方法:)但是最糟糕的情况甚至没有。每个人都知道这个词。

车手


现在,在座的很多人都在微笑。这可能是继TNT2之后最史诗般的实现。

如果您什至不记得这一点:

图片

...那么您绝对应该记住这一点:

图片

不用说,随着DX9的出现,供应商开始以惊人的速度向驾驶员打拳,而他们只记得WHQL是最后的手段。同一张DX9卡的性能可以动态变化,有时DX8卡可以成为其伴侣。例如,GeForce MX 440(NV18)就是这样,它使用SM2.0仿真来模拟某个版本的柴火,但后来被刺回。因为有些不礼貌的事情:NV18在着色器中赢得了NV34,而她甚至还没有...

例如,这里是有关GeForce FX常见故障的良好统计信息

然而,有很多值得骄傲的事情。例如:

  1. 自适应纹理过滤

    , NV30 90% ! - . , , , , - ?

    . , : , «» , , , Intellisample. , NVIDIA . …

    , fps ATI NVIDIA. ATI : ( : !), : brilinear filtration.

    - ATI : ,- ? , , 10 . - (NV30 / R300), - . «, » — . . :

    图片

    "As long as this is achieved, there is no «right» or «wrong» way to implement the filtering..."

    , , . , 175.19 GeForce FX :



  2. API ( ).

    , API ( Direct3D) API, . API . Microsoft. :

    DX9

    , - . :

    • - OpenGL.
      ():



      , . , . :)

    • Game Codepaths. — . , .


      , Valve, Shader Model 2.x NV30 Shader Model 1. Half-Life 2.


      ru.wikipedia.org/wiki/GeForce_FX

      , , , . Half-Life 2 . , , FX 5600 ( MX 440) Half-Life 2, RV350, — .

    • .
      — Tom Clancy’s Splinter Cell:


      Q: Why does Splinter Cell have a special mode for NV2x/NV3x graphic chips?

      A: Splinter Cell was originally developed on XBOXTM. Features only available on NV2x chips were used and it was decided to port them to the PC version even if these chips would be the only one able to support them. Considering the lighting system of XBOXTM was well validated, it was easy to keep that system intact.

      Patchinfo.rtf (from patch 1.3)




这次,我将不评估性能,而是通过fps监视向您展示无聊的照片。这根本不是我对这一代显卡感兴趣的地方。总的来说,在这一代视频卡上,我对它们的兴趣结束了,因为Geforce FX是最后一批具有其竞争对手所没有的独特功能的卡。就是这样。

同时,我决定进行多样化:让我们在不同的游戏中查看不同的功能:)如果感兴趣的话,游戏中的图形设置:“最大色彩丰富”!电影毕竟还是在哪里?没错,当时尚未提供游戏中的电影院许可...

但是在我们匆匆浏览着色器之前,我要警告:图片实际上比页面上显示的要大得多。在我看来有必要的地方,我提供了单击图片以打开源的可能性-如果您有兴趣,请不要忽略!下面还将是一些gif。Gif是这样的Gif,导致转换质量不可避免地降低。这是必须接受的,因为它们的主要功能是网络上的动画,而不是博物馆中的照片演示。但是您也可以单击它们!

所以游戏...

毁灭战士3

  • 渲染器: OpenGL 1.5
  • Shadowtech:模板化阴影卷(通过Carmack的反向)+ UltraShadow技术
  • 着色语言: ARB ASM

UltraShadow ...听起来吧?我们将在这里讨论。有一个传说:


, GeForceFX Doom3, . UltraShadow, GeForceFX 5900. , , QuakeCon 2003:

«GeForce FX , Doom, nVidia , Doom. , , nVidia „“, ».


www.thg.ru/graphic/20030924/nvidia_interview-01.html

尽管像这样的人开始像地球上所有认真的人一样,约翰·卡马克(John Carmack'a)还是一个非常有趣的计划。这是可以理解的,但是还有其他工作方法吗? ;)

首先,由于有了这个dotplan,John Carmack的行为比Gabe Newell更为诚实。在对DooM3引擎进行编程时,他只是拒绝了任何专有的OpenGL扩展,而是专注于公开可用的ARB _ ***扩展。尽管为使引擎与旧的非DX9卡兼容而编写了相应的代码路径,但对于新卡来说一切都是诚实的:它们必须在引擎上平等地战斗。他们说,现在你们中的许多人都会抗议,但是:


At the moment, the NV30 is slightly faster on most scenes in Doom than
the R300, but I can still find some scenes where the R300 pulls a little bit
ahead. The issue is complicated because of the different ways the cards
can choose to run the game.

The R300 can run Doom in three different modes: ARB (minimum exten-
sions, no specular highlights, no vertex programs), R200 (full featured,
almost always single pass interaction rendering), ARB2 (floating point
fragment shaders, minor quality improvements, always single pass).

The NV30 can run DOOM in five different modes: ARB, NV10 (full fea-
tured, five rendering passes, no vertex programs), NV20 (full featured,
2或3个渲染阶段),NV30(全功能,单阶段)和
ARB2。

...
约翰·卡马克(John Carmack)的.plan_2003
content.atrophied.co.uk/id/johnc-plan_2003.pdf

让我们更详细地分析这一刻。实际上,NV30的进一步实验并没有消失。也许约翰根本受不了这种膜:

...
当前的NV30卡确实还有其他一些缺点:它们占用两个
插槽,并且当冷却风扇启动时,它们的音量非常大。我通常不是
一个关心风扇噪音的人,但是NV30确实惹恼了我。

...
约翰·卡马克(John Carmack)的.plan_2003
content.atrophied.co.uk/id/johnc-plan_2003.pdf

尽管如此,但此发行版中仅包含6个“有效”代码组(和1个实验性:)。



NV10,NV20,R200。顾名思义,这三个是特定于某些芯片的。
Cg,ARB,ARB2。这三个是通用的。即使ATI仍接受Cg培训,但仍禁用了此代码传递(出于实验的诚实性?)。因此,ARB2在这里是最复杂的渲染器。

至于NV30渲染器,他呆在Alpha上



因此,总体而言,一切都是诚实的。在NV30 / R300上,您看到了DooM3的样子:例如,



在某些GeForce MX 440(NV18)上,DooM3的样子是这样的:



但是回到计划没有影响的地步...

著名的“ Carmack逆向算法 ”和对NVIDIA UltraShadow的支持
这里很有趣。您可以通过参考阅读有关算法的信息,但总的来说,“ Carmack hack on shadow”本身仅是“从相反方向”获取阴影的一种方式。顺便说一句,考虑到DooM3引擎本身是如何设计的(id Tech 4),这一点也不奇怪,毕竟,它本质上是一个坚实的阴影:)而且,NV35 就像所有后续的NVIDIA卡一样,也具有针对此类欺诈的硬件支持。例如,我的GTS 450(突出显示):



但这是什么技术?

简而言之,UltraShadow技术允许程序员在3D场景中设置照明边界。这使您可以限制每个光源的效果计算。结果,大大减少了用于计算照明和阴影效果的计算量。




而且,UltraShadow II似乎还具有DooM3拍摄功能,并确保已使用该技术。实际上,随着DooM3的发布,事实并非如此

...
Anthony'Reverend'Tan
关于深度界限测试在游戏中的实现情况是什么?
使用cvar 似乎对NV35或NV40 没有任何影响

John Carmack
Nvidia声称有所改进,但可能需要未发布的驱动程序。这不是什么大不了的事情。

...
web.archive.org/web/20040813015408/http://www.beyond3d.com/interviews/carmack04/

但是,仍然可以今天强制打开丢失的内容(并且在最后一个补丁中,默认情况下甚至已打开)。实际上,您只会获得性能上的提升,而没有视觉差异。好吧,为此...

如果有人明显感兴趣(r_showshadows 1)
Ultrashadow:



Ultrashadow:



极品飞车:最高通缉

  • 渲染器: Direct3D9
  • Shadowtech:阴影贴图
  • 着色语言: HLSL

既然我们在谈论阴影,那么我们又怎能不记得如此蓬勃发展的NFS:MW?我知道这是一个奇怪的选择,但是乍一看……

在那些日子里,很流行说NFS:MW是如何廉价廉价地模拟HDR的一个很好的例子


, «» HDR , , bloom tone mapping . LDR : bloom (overbright), , HDR ( tone mapping) , bloom , , .

- . , . HDR tone mapping, 16- «» HDR , 16- . , Need For Speed: Most Wanted , , .


www.ixbt.com/video2/tech_nfsmw.shtml

我们在整个游戏中看到的东西似乎是真的吗?

Overbright(Bloom):



运动模糊:



也许有时我们会注意到World Reflections 如果您确实愿意,您可以轻松地将电影服装(视觉处理=高): 变成优雅的短裤(视觉处理=低): 仍然是模拟的费用它们在这里是不值得的,因为相同的Bloom(毫无疑问是这里的基础)仍然是HDR效果。该游戏中的许多其他内容(例如,下雨效果或阴影细节设置)仅对比NV34功能更强大的视频卡所有者提供













好吧,在这里我们迷上了我们的起点。特别细心的人仍然会注意到阴影贴图的进攻性很强。据认为,该游戏仅使用了低分辨率的阴影贴图。也许这是一个折衷方案,也许没有足够的时间对阴影进行更详细的调整,但也许还是关于代码保留的问题……谁知道呢?谁比EA兼容性检查工具更好地了解这更好:在



总,在NVIDIA GTS 450的场景看起来像这样:



嗯,乍一看,一切都是合乎逻辑的:在NV34有清楚的阴影更少的(我们来看看阴影下机):



现在,检查代码的储备。为此,我们需要3D分析 替换为NV34



NV35(FX 5900 )上的(FX 5200)发射:



如您所见,GTS 450现在没有太大区别。为了确保更好的性能,存在一些人为限制。的确,阴影的质量无论如何都不能称得上好:)

顺便说一下,在Radeon 9600(RV350)上,它看起来像这样:



相距甚远

  • 渲染器: Direct3D9; Opengl 2.0
  • Shadowtech:模板化阴影卷+阴影贴图
  • 着色语言: Cg

人们认为《孤岛惊魂》是第一款真正支持HDR渲染的成熟游戏(与《半条命2:失落的海岸》不同)。至少是其最新的正式版本(1.4)。是的,您自己会看到使用HDR在《孤岛惊魂》中著名的水看起来多么别致:





也可以看到没有HDR的水。




总体而言,在1.4版补丁发布之后,《孤岛惊魂》中包含了所有流行的效果的完整集合,例如,相同的Heat Haze(查看墙壁上的铭文或天花板上的灯):



顺便说一下,Ubisoft随后积极倡导使用新型的AMD64,因此孤岛惊魂有两种版本:x86和x64(顺便说一句,半衰期2完全一样)。x64版本还发布了独家内容。结果,立即出现了一个非官方的64到32位Converter Mod,使您可以在32位系统上观看此独家内容。后来,在1.6版之前出现了一个非正式补丁,其中,也许,此独家内容终于迁移到了《孤岛惊魂》的x86版本。我建议您自己检查一下。

是的,如果这还不足以满足您的需求,则可以使用该包中包含的实验性OpenGL渲染器。如何写在这里(从单词System.cfg中读取)。

通话者:SHOC

  • 渲染器: Direct3D8-Direct3D9
  • Shadowtech:阴影贴图
  • 着色语言: HLSL

这是真正的“冲击”,因为在第一个游戏被开发的,那么另一个,但最终他们得到了 adow Ø ˚F Ç hernobyl。但是经过7年的发展,无论是哪种方式,都取得了成果:X射线引擎是第一个使用革命性的Deferred Shading渲染概念的引擎。人们认为STALKER更像是具有DirectX9功能某些元素的DX8游戏。因此,这从根本上是错误的。确切地说,恰恰相反。 X射线引擎包含三个完整的渲染器:r1(静态照明-DX8),r2(物件动态照明-DirectX9)和r2a(R2 +全动态照明)。只需查看控制台并输入“ help”即可查看每个渲染器的选项比例。

您可以谈论这个游戏很长一段时间,从所有角度来看这都是惊人的,但是让我们将自己限制在上面已经说过的事情上……并且还要补充一点,STALKER是最早使用体积纹理渲染技术的游戏之一- 视差映射。但是,有细微差别。在游戏的原始版本(带有最新的补丁1.0006)中,无法通过控制台控制此技术(或者我没有注意到任何更改),并且通常认为负责其应用程序的着色器代码无法正常工作。因此,有很多爱好者重写了这些效果以及许多其他STALKER着色器效果,以便最终用户可以清楚地看到,他的系统可能会被无用的计算严重加载……并且当然可以与任何东西进行比较。例如,您可以将原始代码与自定义代码进行比较STALKER Shaders MAX 1.05 当然是值得商de的。但是,由于我们在谈论自定义着色器,因此我想介绍一件事。聚焦于主体时的背景模糊效果- 景深



。 3dfx早在DirectX6时代就开始谈论这一点,但后来并未实现完整的实现。最初并没有,但是在STALKER Shaders MAX 1.05中终于出现了。化妆做得很差,但是实在太懒了,无法重做,所以直接看一下跟踪者 就可以看到背景:也许这也不是最漂亮的实现,但是它是业余的,所以它会掉下来的:) 现在,我想告诉你:STALKER有Bloom HDR效果的两种出色实现。默认值和所谓的“快速绽放”是单独提供的。他们在这里行动:Bloom Fast-Bloom














鉴于Fast-Bloom是单独包含的,因此可能存在某种复杂的实现方式,而不是通过简单的高斯模糊进行近似。否则,它们就是测试的回声。

STALKER还推出了运动模糊!要启用它,您需要使用-mblur开关启动游戏,并在控制台中指定效果。然后,您将得到类似的结果:



但是最终这样做对X-Ray这样的引擎将是完全不公平的……事实是,开发被延迟了并且尚未完全调试,但是

我只会通知所有无知的人

在STALKER中甚至有全局照明也就是说,如果在您看来房间显然没有光反射:



...那么您可以说r2_gi 1,然后看起来像这样:



甜蜜:汤姆·克兰西的分裂细胞


自从GeForce4 Ti开始,英伟达显卡中就出现了不起眼的阴影缓冲区功能我找不到使用此技术的游戏的完整列表(可能是因为不是),但是当时如此受人称赞的Xbox的任何幸运所有者都确切知道了新一代的影子。好了,现在我们仅在PC上研究实际的品牌特征...但是首先要讲一点理论:

...
分裂细胞动态照明系统

Splinter Cell shadow system is a major part of the game. On NV2x/NV3x hardware, it runs using a technique called Shadow Buffers. This technique is rendering the scene from every shadow casting light and store a depth buffer that represent each pixel viewed by this light source. Each pixel has an X, Y, Z coordinate in the light system and these coordinates can be transformed, per pixel, in the viewer coordinate system. It’s then easy to compare with the actual depth stored in the Z buffer to figure out if the pixel viewed by the camera is the same or is occluded by the pixel viewed by the light. If they are the same, it means the pixel is lighted, if the light pixel is in front of the viewer pixel, it means the pixel is in the shadow. On all other current hardware, the game is using another technique called projected shadows (shadow projectors). The technique is somewhat similar, we render the scene from the light point of view but instead of storing the depth, we are storing the color intensity in a texture. That texture is then mapped per vertex on each object that is going to receive the shadow. To be able to have objects casting shadows on other objects that are themselves casting shadows, Splinter Cell is using a 3-depth levels shadow casting algorithm. In general, the first level is used to compute the shadow to be used on the dynamic actors like Sam. The second level is used to compute the shadow used by the static meshes like a table or boxes. The final level is used for the projection on the BSP. This system is allowing Sam to receive the shadow of a gate on him, then Sam and the gate can cast on a box and finally all three objects can cast on the BSP (ground). This system also has a distance check algorithm to determine if Sam’s shadow should be projected on a static mesh (like a box) or if it shouldn’t base on their relative position. Both systems have their own strength/weaknesses. The main advantage of the Shadow Buffer algorithm is how easy it is to work with. Shadow Projectors are tricky and difficult to use.

...
Patchinfo.rtf(来自1.3版)

我认为投射阴影的原理已经很清楚地描述了。根据以上所述,以下内容:

  • Shadow Buffers是当今如此普通的Shadow Mapping,由于NVIDIA卡中存在用于阴影卡的特殊缓冲区,因此硬件在NVIDIA卡上得到了加速。
  • 汤姆·克兰西(Tom Clancy)的《分裂细胞》(Splinter Cell)是一款出色的游戏,具有出色的引擎,并具有相同的优化功能:


    Splinter Cell has 3 different rendering pipes:

    Class 2 Graphic Adaptors:
    NV2x/NV3x chips
    Dynamic Lighting system = Shadow Buffer
    Vertex position modifiers = Yes
    Light beams stopped by depth texturing = Yes
    Pixel Shader effects/filters/water = Yes
    Reflection/Details texturing/Specular = Yes

    Class 1 Graphic Adaptors:
    R2xx/R3xx/Parhelia/Xabre 200/Xabre 400/Xabre 600/chips/Creative P9
    Dynamic Lighting system = Shadow Projector
    Vertex position modifiers = No
    Light beams stopped by depth texturing = No
    Pixel Shader effects/filters/water = Yes
    Reflection/Details texturing/Specular = Yes

    Class 0 Graphic Adaptors:
    R1xx/NV1x chips
    Dynamic Lighting system = Shadow Projector
    Vertex position modifiers = No
    Light beams stopped by depth texturing = No
    Pixel Shader effects/filters/water = No
    Reflection/Details texturing/Specular = No


    Patchinfo.rtf (from patch 1.3)

    , , Xbox, NV20A. , NVIDIA — R300 — . :)


好吧,这就是在NVIDIA GeForce FX 5200(NV34上的样子

投影阴影:阴影缓冲区: 为了保真起见,我尝试研究ATI Radeon 9600(RV350)。实际上,此处的阴影缓冲区不会打开,并且3D分析不会保存。投影阴影模式看起来与NV34相同 有趣的是,阴影缓冲区模式下游戏仍将GeForce GTS 450启动,但看起来像这样: 哪一个是正确的(在GeForce FX 5200或GTS 450上)仍然未知,因此有一种观点认为,游戏本身中存在一个带有阴影未修正错误















但是有一种观点认为问题在于nvidia驱动程序,因此,要完全潜水,您需要使用旧卡(毕竟,新卡仅不适用于旧驱动程序)。

幸运的是,今天,分离器的下一部分(即Pandora Tomorrow)中阴影的相同问题已由风扇包装器部分解决

顺便说说
, - , Tom Clancy’s Splinter Cell Mission Pack. , , . GOG-.

这可能会开始结束,但在我看来,如果不提及另一项非凡的技巧,故事将是不完整的...

高阶曲面

让我们从ATI如何继承其硬件技术TruForm的历史开始。从科学上讲,这称为N面片(或等效地称为PN三角形)。它出现在Radeon 8xxx中,但是可能是在Radeon 9xxx(R300刚到时,达到了普及的顶峰。我可以理解,如果您懒得跟踪下一个链接,那么在两张有关TruForm本质的图片中

从这样的茶壶TruForm中独立增加基元的数量将使您像这样:







这就是所谓的自适应细分-使用视频卡芯片根据应用程序(游戏)发送的预定义基元来增加基元的初始数量。承诺将有可能在所有游戏中立即看到动作,并且不需要游戏的支持。希望以此,我在自己喜欢的游戏中而不是游戏中追逐了训练场很长时间,试图在实践中看到它。因此,事实证明,在RV350(催化剂10.2)的最后一个柴火中,TruForm被愚蠢地禁止了。您会发现,有一种观点认为,巧妙的TruForm技术可以将正方形场景中的所有东西都完美地聚集在一起,并且带有耗材的相同木箱也变成了圆形。首先对设备进行了修改,但随后将其丢弃在驱动程序之外。

但是我们对您怀有浓厚的历史兴趣,因此在Catalyst 5.7驱动程序中它的



外观实际上是这样的因此,与我们的预期相反,只有在游戏真正支持的情况下才能看到TruForm。哦,这些商人啊!好吧,由于不可能将它强制连续应用于所有游戏,那么您在哪里可以看到它?在同一个Wikipedia上,我们提供了一小部分主要游戏,这些游戏带有TruForm的第三方修补程序,这有些是不可靠的。如果我们谈论的是由TruForm原生支持的游戏,那么毫无疑问,大部分时间都是第一次看到《Serious Sam》的真实形式。由于我个人对他的表格不抱有同情之心,所以我建议您看看无冬之夜的真实形式



这就是盒子的实际情况: 一切都会好起来的,但是在Catalyst 5.8版本中,确实已经可以观察到它们的威严artifact像: 然后,该功能最终被掩埋。 所以我在做什么……大约在同一时间,NVIDIA也继承了历史上类似的技术。他们还开始Geforce 3 Ti中使用硬件中的一种称为“ 矩形和三角形贴片RT-Patches)”的技术 这很有趣,但是实现RT-Patch的问题











实际上由实施本身组成。如果我们想为此技术制作一个游戏引擎,则必须在开发阶段将所有适合其曲面细分的曲面公式放入该引擎中。因此,如果我们希望引擎在不支持RT-Patch的情况下在任何其他地图上工作,则需要经典地重新编写所有多边形。共计双重工作。

这可能是RT-Patches未能获得游戏开发人员支持的原因,但据称可以在Aquanox中看到它们

的确,有以下观点:

...
NV20和NV25驱动程序早已停止支持对光滑表面进行硬件细分(基于RT修补程序的HOS)。这样做的原因在于DirectX-如果卡在硬件中不支持N-Patch,则API会尝试使用RT-Patch来模拟它们。无疑,这会导致N-Patch运行非常缓慢,甚至比明智的软件仿真还慢。NVIDIA被迫禁用RT-Patch,以使具有N-Patches支持的游戏不会陷入僵局,而这对于普通用户而言很难解释其最新产品。

...
www.ixbt.com/video/gf4ti.shtml

OG上的几个人老实地试图找到支持RT-Patch的驱动程序(找到了这样的驱动程序),但是不知何故没有进一步发展。

有兴趣的问题:

  • RT-Patches GL_NV_evaluators OpenGL Rectangular and Triangular Patches DirectX:





  • N-Patches (TruForm) GL_ATI_pn_triangles OpenGL N-Patches DirectX:





  • 可以在此处找到具有本机TruForm支持的游戏列表找不到RT-Patches支持的游戏列表 当您寻找支持TruForm的卡时,请注意,从DirectX 11开始,硬件细分(TruForm的本质赋予了第二生命! 如果你无法找到一个地图,不要灰心:很可能,你将能够生存到包装





总的来说,一切,但...

一点点披露


FX的GeForce这个词多少钱:)

众所周知,GeForce是几何力的缩写。考虑到革命性的GPU(几何处理器单元)在板上的存在,因此它也被称为NVIDIA GeForce256,后者通常被称为Hw T'n'L。FX

来了

...
最后将“ FX”包含在两个区域。首先,NVIDIA将其誉为“电影计算的曙光”,因此电影特效与名称同名。其次,这是前3dfx工程师对NVIDIA设计进行认真投入的第一个设计,因此从某种意义上说,它是对他们的投入的敬意(当然,这不是一种利用强大品牌声名的方法!) 。

...
www.beyond3d.com/content/interviews/26

啊,当然不能!:)

与Glide的兼容性

在NVIDIA工程师不断将其后代(NV30称为工作状态的同时,市场营销人员正在像Vaporone广告中出售预购产品。为了增加潜在的购买者,甚至还开发了新的NvBlur API,其主要功能之一是与Glide API的向后兼容性。当然,NvBlur存在的不超过3dfx Voodoo 5903dfx Voodoo Reloaded

新的曙光

嗯,是的,如果有人记得的话,NVIDIA在2012年复活了该演示 当您查看这些内容时,有时似乎这是一个真正拍摄的视频。是DirectX11。但是,即使现在这已不再是游戏行业的地方...





好吧,你知道...



当然,总的来说,带有浮色日出的整个史诗启发了以下内容:

在下一个GDC上,游戏开发人员厌恶地看着1024x768屏幕上的Duma3演示。 FPS甚至不显示。

开发人员:-好吧,告诉我为什么经过如此多的努力后,我又在屏幕的地板上又看到细小的怪物,却又看到了迷你地图大小的怪物?
NVIDIA:-由于ATI,我们无法做任何事情!
ATI:-是的,Microsoft再次设置了任务...
Microsoft:-顺便说一下,漂亮的幻灯片也是电影!

总的来说,日出确实是有争议的,但是仍然需要



日落在那个日落,NVIDIA设法通过其下一代NV40芯片重新获得地位。,它按时完成并在《半条命2》中ATI R420 冬季两项进行了英勇的战斗但是我们都知道:这全都归功于NV40尽管被认为是一种新的建筑解决方案,但仍然至少包含70%的NV30

这就是FP32精度真正派上用场的地方。


GeForce6 6600 — NVIDIA , — NV43 NVIDIA .

谢谢


能够对old-games.ru进行管理,以使其能够快速免费地批量下载20个游戏,而只是检查文件结构并运行一次。

对于一个对我即将来临的评论很感兴趣的人来说,这使我成为了过去各种意义上的无价之宝的典范:)

...?TBC?...


参考文献
! nvidia.com

, , Koroush Ghazi (, - , ?)

NV30 . DX9- - .

R300.

NV30 . SM2.0 ( . . NV35). Tony Tamasi NV30.

, .

HDR- Need For Speed: Most Wated.

- NV35 vs R350, . , , - :)

. John Carmack'. ( ) John' Carmack'.

- .

3D-.

Source: https://habr.com/ru/post/zh-CN384037/


All Articles