Encaminhar para o passado. Geforce FX O alvorecer da guerra

Desde a sua fundação, a Microsoft conseguiu fazer duas das coisas mais importantes da vida: analisar algo estrangeiro no tempo e ganhar algum dinheiro. Em grande parte graças à Microsoft, como principal gerador das idéias mais minimalistas, todo o setor de TI tem (e ainda está) desenvolvendo caminhos de desenvolvimento que são vantajosos principalmente para a própria Microsoft. O resultado da implementação de muitas dessas idéias não foi apenas a falência de muitos gigantes da indústria de TI, mas também uma rápida unificação universal. Todos os componentes do PC, do hardware ao software, tornaram-se cada vez mais universais e similares, perdendo a capacidade de diferir favoravelmente. E assim, em 2002, quando a Microsoft voltou a colocar suas mãos pequenas e divertidas de monopólio na indústria de 3D, a especificação DirectX9 foi lançada em uma onda estrondosa nos fabricantes de chips 3D ...

E, como todos nos lembramos bem), no ano seguinte, 2003, marcou a chegada dos gráficos dos filmes no PC. Bem, sim, foi assim: WinXP, jogos em DVD que exigem a instalação do DirectX9 e ... as mesmas placas de vídeo com algum tipo de sombreador. Condicionalmente, podemos dizer que a especificação DX9 deveria acabar com as diferenças nos resultados de renderizar a mesma imagem em cartões de fabricantes diferentes . No entanto, mesmo essa especificação não pôde finalmente conter a NVIDIA. E, com razão, caso contrário, por que a NVIDIA investiria em algo promissor?

E aqui chegamos ao que me levou mais uma vez a enfiar um cadáver com um graveto e ainda escrever esse comentário.

Perigo: Dentro de muitas fotos GRANDES. Apenas o primeiro é dois megabytes.

Talvez você também não soubesse:

...
David Kirk acrescenta um pouco da história de como essa tecnologia foi introduzida no GeForce FX:

Quando fizemos a aquisição do 3dfx, o NV30 estava em andamento e havia um projeto [codinome Fusion ] no 3dfx em andamento. As equipes se fundiram e os projetos foram fundidos. Tínhamos cada equipe alternado para entender e apresentar a arquitetura da outra e depois defendê-la. Em seguida, escolhemos e escolhemos as melhores partes de ambos.

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

No momento desta declaração, o GeForce FX era uma construção notável a longo prazo e estava muito atrasado para o mercado. Você pode dizer que a NVIDIA conseguiu evitar esse mesmo dia

Quando todas as músicas estão silenciosas


Pelo canto do meu olho




De fato ... A primeira coisa que correu à beira de nossos olhos ao ver o lendário dastbuster (GeForce FX 5800) foram as dimensões.

imagem

Aqui está um monstro de dois slots ao lado da Radeon 9800:

imagem

Para entender o motivo de uma solução tão extraordinária, teremos que olhar mais de perto ...

Mais perto do coração



imagem

A GeForce FX, embora não tenha sido a primeira GPU superscalar do mundo, foi sem dúvida a GPU superscalar mais complexa de seu tempo (e permaneceu assim por muito tempo). Tão complexa que ainda faltam informações precisas sobre os componentes aparentemente mais simples de sua arquitetura interna. Como resultado, sua entrada no mercado foi adiada ... adiada ... E, finalmente, ele veio, há muito aguardado.

NV30: O amanhecer de CineFX



Para ser mais preciso, essa parte arquitetônica mais complexa do NV30 foi chamada de mecanismo CineFX (1.0) . Os profissionais de marketing da NVIDIA decidiram que soaria mais atraente que o nfiniteFX III Engine . Polêmico, mas verdadeiro.

CineFX (que não entendia: Cine matic Ef fe cts ) é em grande parte o mérito de 3dfx engenheiros (recordar o sensacional T-Buffer). Ele contém tudo o que você precisa para renderizar efeitos especiais cinematográficos em sua casa.

Você pode perguntar: do que um cinema iniciante precisa? Tudo é simples. O cinema inicial precisará apenas do mais necessário: precisão de 128 bits da representação de dados para trabalhar com ponto flutuante ePipeline gráfico totalmente programável com suporte para Shader Model 2.0, permitindo impor até 16 texturas. Você está intrigado? Sim, aqui está:

  • 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.


A maioria das discussões pacíficas sobre o desempenho de um ou outro dispositivo geralmente cai em um holivar sobre o tópico “O que é mais importante: ferro ou software? »Na verdade, não importa quantas pessoas não gostariam de fugir da realidade, mas de hardware sem software - é hardware :)

Na época do lançamento da GeForce FX 5800 ( NV30 ), um concorrente diante da Radeon 9700 Pro ( ATI R300 ) se divertiu por mais de um quarto . Era fevereiro de 2003. Hoje, esse atraso na morte é semelhante, e é exatamente por isso que podemos chamar com segurança 2003 o ano da NVIDIA.

Foi assim: Vem NV30para a troca de mão-de-obra e não há uma com conhecimento do DirectX9 na lista de vagas. Acontece que o NV30 não estava atrasado em nenhum lugar ... De fato, os primeiros jogos poderosos conhecidos para DX9 (como DooM3, HL2, NFS Underground 2 ) apareceram apenas em 2004. O tão aguardado Stalker já em 2007.

Estou focado no fato de que simplesmente não havia nada para comparar o desempenho dos cartões para revisores em 2003. Serei franco: ao escrever este artigo, analisei a imagem por um longo tempo, mas nunca conheci uma única revisão do NV30 com testes ao vivo de DX9. Basicamente, os recursos do DX9 foram testados no 3DMark ...

E uma história legal está conectada com isso
, 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




Como resultado, nesses anos você costumava ouvir algo como:


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

E, embora o mesmo John Carmack possa facilmente argumentar com essa afirmação, em qualquer caso, esta é uma confirmação clara de que o ferro não é nada sem o software. Além disso, de fato, o desempenho do sombreador do NV30 foi desastrosamente dependente principalmente de como o código do sombreador foi escrito (mesmo uma sequência de instruções é importante). Foi então que a NVIDIA começou a avançar de todas as formas possíveis na otimização do código de sombreador para o NV30 .

Por que isso foi necessário? E então, o NV30 com a implementação de shaders não é tão simples:


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

Ou seja, a arquitetura NV30 não permitiu que ele se revelasse completamente usando o código do padrão SM2.0. Mas agora, se você embaralhar as instruções um pouco antes da execução, talvez substitua uma pela outra (oi, 3DMark 2003) ... Mas na NVIDIA eles entenderam: é muito mais eficiente lidar com a causa e não com as conseqüências.

Leva dois. NV35: O Crepúsculo

Esta não era uma nova solução arquitetônica, mas uma melhoria muito competente. Os engenheiros da NVIDIA corrigiram tão fanaticamente seus erros que até herdaram na história dos shaders o Shader Model 2.0a oficialmente documentado (SM2.0 a ), que recebeu o nome de modelo otimizado para NVIDIA GeForce FX / PCX, DirectX 9.0a . O NV35 , é claro, não entrou em panacéia , mas eles se lembraram: no



entanto, devido à extrema complexidade da microarquitetura NV30 , algumas nuances muito interessantes no NV35 permaneceram inalteradas. Portanto, em suas especificações, os revisores frequentemente indicavam algo como:

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

Este é os "componentes mais simples" que mencionei no início do artigo. Sim, a terminologia é um pouco estranha, mas isso não é tão ruim. De fato, dessa maneira, os profissionais de marketing simplesmente tentaram nos transmitir as coisas mais simples: quantos pipelines de vértices e pixels (unidades de sombreamento, se você quiser) o chip possui.

Como qualquer pessoa normal que leu essa especificação, minha reação normal é: bem, quantas existem? Então, a coisa toda é que ninguém sabe disso :) Parece que as características mais comuns de um chip gráfico, das quais você pode tirar imediatamente algumas conclusões sobre o desempenho?

Bem, sim, o mesmo ATI R300tudo é transparente: 8 pixel e 4 shaders de vértice ... Ok, você pode executar o mesmo GPU-Z e, seguindo a terminologia estabelecida, ele diria que o NV35 tem apenas 4 pixel e 3 shaders de vértice contra isso. Mas isso não seria totalmente exato, porque no início dos jogos de cinema, a NVIDIA teve sua

olhar alternativo para shaders
, . , , .

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), "… , !" :)



imagem

De qualquer forma, se o principal objetivo dos engenheiros da NVIDIA naquela época era herdar vividamente a história - sem dúvida eles conseguiram! Além disso, outro recurso interessante apareceu na NV35 , os concorrentes não tinham um análogo: a Tecnologia UltraShadow , que, a propósito, será discutida mais adiante :) Mas vamos parar de falar sobre o belo e voltar

Do céu para a terra


Felizmente , eu não tenho um dastbuster ... (mas você sempre pode olhar para uma exposição de museu ). Felizmente, porque os ouvidos são mais caros . Além disso, ele e seu sofisticado irmão, GeForce FX 5900, eram desproporcionais em relação à carteira de uma pessoa simples, com necessidades simples. E para essas pessoas, a NVIDIA ofereceu opções para a GeForce FX 5600 no chip NV31 , mas também não recebi.

E agora, por acaso, depois de 12 anos, posso dizer, eles "sugaram" um esboço de escritório:



mas não é zumbido! Ou seja, além do NV31 truncado foi lançado mais e o NV34 , que não é um desempenho diferente, mas sim um NV31 de casamento .



Agora, brevemente, o que é interessante no NV34 não se encaixava :(



  • O NV30 / NV35 tinha um design de pipelines de 4x2 pixels, e apenas 4x1 permanecia
  • Curiosamente, o Everest e o GPU-Z dirão que existem 2 shaders Vertex, enquanto a Wikipedia parece ser 1. Aqui você tem a arquitetura FP Array fechada;)
  • O NV30 / NV35 introduziu compressão paranóica de tudo o que acabou de chegar ao pipeline gráfico. Isso incluía não apenas texturas, mas também o buffer z e os valores de cores de cada pixel no buffer do quadro! Portanto, no NV34, este complicado algoritmo de compactação sem perdas 4: 1 não se encaixava :)
  • A tecnologia UltraShadow também não foi incluída ( apenas nos modelos GeForce FX 5900 e 5700 ). Mas não fique chateado, eu vou te mostrar tudo;)
  • Esta instância tem uma largura de barramento de memória de até 64 bits (sim, como placas de vídeo 2D antigas)

Aparentemente, quase nada se encaixa :) Mas o pior nem foi isso. Todo mundo conhece essa palavra.

Drivers


Aqui, agora, muitos de vocês devem estar sorrindo. Essa foi provavelmente a implementação mais épica após o TNT2.

Se você nem se lembra disso:

imagem

... então você definitivamente deveria se lembrar disso: nem

imagem

é preciso dizer que, com o advento do DX9, os fornecedores começaram a perfurar os drivers com uma velocidade incrível, e eles se lembraram do WHQL apenas como último recurso. O desempenho da mesma placa DX9 pode dançar tão dinamicamente que às vezes uma placa DX8 pode se tornar sua parceira. Foi assim, por exemplo, com a GeForce MX 440 (NV18) , que a partir de uma certa versão de lenha foi emulada com emulação SM2.0, mas depois esfaqueada. Por algo indecente: NV18 vence o NV34 em shaders, que ela nem tem ...

Aqui, por exemplo, há boas estatísticas sobre problemas populares da GeForce FX .

No entanto, havia muito do que se orgulhar. Por exemplo:

  1. Filtragem adaptativa de textura

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

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

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

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

    imagem

    "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)




Desta vez, não medirei o desempenho e mostrarei fotos chatas com o monitoramento de fps. Não é isso que me interessa nesta geração de placas de vídeo. De uma maneira geral, nesta geração de placas de vídeo, meu interesse por elas acaba, porque a Geforce FX foi a última placa que possuía algo único que seus concorrentes não possuíam. É isso sobre isso em primeiro lugar.

Ao mesmo tempo, decidi diversificar bastante: vamos ver características diferentes em jogos diferentes :) Se estiver interessado, as configurações gráficas nos jogos: “cores ricas máximas”! Afinal, cinema ou onde? É verdade que as permissões de cinema em jogos ainda não estavam previstas ...

Mas antes de nos apressarmos nos shaders, gostaria de advertir: as imagens são realmente muito maiores do que as mostradas na página. Onde me pareceu necessário, eu previ a possibilidade de clicar na imagem para abrir a fonte - não descuide se estiver interessado! Também abaixo, alguns gifs. Gifs são esses gifs que a qualidade da conversão é inexoravelmente reduzida. Isso deve ser aceito, porque sua principal função é a animação na web e não uma apresentação de fotos no museu. Mas você pode clicar neles também!

Então os jogos ...

Doom3

  • Renderizadores: OpenGL 1.5
  • Shadowtech: Volumes de sombra estampados (via Reverse de Carmack) + Tecnologia UltraShadow
  • Idioma de sombreamento: ARB ASM

UltraShadow ... Parece, não é? Vamos falar sobre isso aqui. Há uma lenda:


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

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


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

Embora não gostaria de começar que como me todos os graves pessoas neste planeta, John Carmack'a foi também um muito interessante .plan . É compreensível, mas como mais trabalhar? ;)

Em primeiro lugar, graças a este plano de pontos, John Carmack foi um pouco mais honesto que Gabe Newell. Ele simplesmente recusou quaisquer extensões proprietárias do OpenGL ao programar o mecanismo DooM3, concentrando-se nas extensões ARB _ *** publicamente disponíveis. Embora para compatibilidade do mecanismo com cartões antigos não DX9 os caminhos de código correspondentes tenham sido escritos, tudo era honesto com os novos cartões: eles tinham que lutar em termos iguais em seu mecanismo. Agora muitos de vocês protestam, dizem eles, mas e quanto a:


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,
duas ou três passagens de renderização), NV30 (recurso completo, passagem única) e
ARB2.

... plano de
John Carmack
content.atrophied.co.uk/id/johnc-plan_2003.pdf

Vamos analisar esse momento com mais detalhes. De fato, novas experiências com o NV30 não foram embora. Talvez John simplesmente não agüentasse as membranas:

...
As atuais placas NV30 têm outras desvantagens: ocupam dois
slots e, quando o ventilador é acionado, ficam MUITO ALTOS. Normalmente, não me
preocupo com o ruído do ventilador, mas o NV30 me irrita.

... plano de
John Carmack
content.atrophied.co.uk/id/johnc-plan_2003.pdf

Seja como for, mas apenas 6 codepases "funcionais" (e 1 experimental :) foram incluídas no lançamento.



NV10, NV20, R200. Como o nome indica, esses três são específicos para alguns chips.
Cg, ARB, ARB2. Esses três são universais. E, apesar do fato de a ATI ainda estar treinada em Cg, essa passagem de código ainda estava desativada (para a honestidade do experimento?). Portanto, o ARB2 aqui é o renderizador mais sofisticado.

Quanto ao renderizador NV30 , ele ficou em Alpha .



Então, tudo foi honesto em geral. No NV30 / R300, você viu o DooM3 assim:



enquanto em alguns GeForce MX 440 (NV18) , por exemplo, o DooM3 era assim:



Mas voltando ao ponto em que o plano não afetou ...

O famoso " algoritmo reverso de Carmack " e suporte para o NVIDIA UltraShadow .
Aqui é interessante. Você pode ler sobre o algoritmo por referência, mas, em geral, o próprio "Carmack hack on shadow" nada mais é do que uma maneira de obter sombras "do oposto". A propósito, isso não é surpreendente, considerando como o próprio mecanismo DooM3 foi projetado - id Tech 4 - afinal, é essencialmente uma sombra sólida :) E o NV35 apenas tem suporte de hardware para essas fraudes, a propósito, como todos os cartões NVIDIA subsequentes . Por exemplo, meu GTS 450 (destacado):



Mas que tipo de tecnologia é essa?

Em termos simples, a técnica UltraShadow permite que os programadores estabeleçam limites de iluminação em uma cena 3D. Isso permite limitar o cálculo dos efeitos de cada uma das fontes de luz. Como resultado, a quantidade de computação gasta no cálculo dos efeitos da iluminação e do sombreamento é bastante reduzida.




E parece que os recursos do UltraShadow II apresentam até fotos do DooM3 e garantem que a tecnologia seja usada. De fato, com o lançamento do DooM3, descobriu-se que não era até o final :

...
Anthony'Reverend'Tan
Qual é a situação em relação à implementação de testes de limites de profundidade no jogo? Não parece ter nenhum efeito em um
NV35 ou NV40 usando o cvar.

John Carmack
Nvidia afirma alguma melhoria, mas pode exigir drivers não lançados. Não é grande coisa, de um jeito ou de outro.

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

E ainda assim, a falta ainda pode ser ativada hoje à força (e no último patch é ativada por padrão). De fato, você obtém apenas um aumento no desempenho, mas não há diferenças visuais. Bem, obrigado por isso ...

Se alguém estiver claramente interessado (r_showshadows 1)
Ultrashadow:



Ultrashadow:



Need for Speed: os mais procurados

  • Renderizadores: Direct3D9
  • Shadowtech: Mapeamento de Sombra
  • Linguagem de sombreamento: HLSL

Já que estamos falando de sombras, como não podemos nos lembrar do tão forte NFS: MW? Entendo que é uma escolha estranha, mas apenas à primeira vista ...

... Naquela época, era muito popular dizer que NFS: MW é um bom exemplo de como você pode imitar o HDR de maneira barata e com raiva .


, «» 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

Parece verdade o que vemos ao longo do jogo?

Overbright (Bloom):



Motion Blur:



e às vezes notamos World Reflections : Se você realmente quisesse, poderia facilmente transformar uma roupa de filme ( Tratamento visual = alto ): em shorts elegantes ( Tratamento visual = baixo ): Ainda assim, as acusações de emulação eles não são merecidos aqui, porque o mesmo Bloom (sem dúvida, tomado como base aqui) ainda é um efeito HDR. Apenas muitas outras coisas neste jogo, por exemplo, o efeito chuva ou a configuração de detalhes das sombras, estão disponíveis apenas para proprietários de placas de vídeo mais poderosas que o NV34 .













Bem, aqui estamos viciados em onde começamos. Particularmente atento ainda pode notar uma implementação muito ofensiva dos mapas de sombras. Acredita-se que o jogo simplesmente use mapas de sombras de baixa resolução. Talvez tenha sido um compromisso, talvez não tenha havido tempo suficiente para implementar um ajuste mais detalhado das sombras, mas talvez novamente seja sobre as reservas de código ... Quem sabe? Quem é melhor que o utilitário de verificação de compatibilidade da EA para saber isso melhor: No



total, no NVIDIA GTS 450, a cena é assim:



Bem, à primeira vista, tudo é lógico: no NV34 há claramente menos sombras (olhamos para a sombra sob a máquina):



agora, verifique as reservas de código . Para isso, precisamos da 3D-Analyze : NV34 substituída



(FX 5200) no NV35 (FX 5900), inicie:



Como você pode ver, agora não há muita diferença com o GTS 450. Existem limitações artificiais para garantir melhor desempenho. É verdade que a qualidade das sombras dificilmente pode ser considerada boa :)

A propósito, na Radeon 9600 ( RV350 ), fica assim:



Grito distante

  • Renderizadores: Direct3D9; Opengl 2.0
  • Shadowtech: volumes de sombra com stencil e mapeamento de sombras
  • Idioma de sombreamento: Cg

Acredita-se que Far Cry foi o primeiro jogo completo que realmente suporta a renderização HDR (ao contrário de Half-Life 2: Lost Coast). Pelo menos a sua última versão oficial (1.4). Sim, você vê como fica chique a famosa água em Far Cry usando HDR:





Água sem HDR também pode ser vista.




Em geral, após o lançamento do patch 1.4, havia um conjunto completo de todos os efeitos da moda em Far Cry, por exemplo, o mesmo Heat Haze (veja a inscrição na parede ou a lâmpada no teto):



Aliás, a Ubisoft então defendeu ativamente o novo AMD64, então que Far Cry foi produzido em duas versões: x86 e x64 (a propósito, era exatamente o mesmo com a meia-vida 2 ). Conteúdo exclusivo também foi lançado para a versão x64 . Como resultado, um Mod Conversor não oficial de 64 a 32 bits apareceu imediatamente , permitindo que você assista a este Conteúdo Exclusivo em um sistema de 32 bits. Muito mais tarde, um patch não oficial apareceu antes da versão 1.6 , na qual, talvez, Este conteúdo exclusivo foi finalmente migrado para a versão x86 do Far Cry. Eu sugiro que você verifique este momento você mesmo.

Sim, se isso não for suficiente para você, você pode brincar com o renderizador OpenGL experimental incluído no pacote. Como fazer isso está escrito aqui (leia as palavras System.cfg ).

STALKER: SHOC

  • Renderizadores: Direct3D8 - Direct3D9
  • Shadowtech: Mapeamento de Sombra
  • Linguagem de sombreamento: HLSL

Isso é realmente “choque”, dado que a primeira partida, um foi desenvolvido , em seguida, uma outra , mas no final eles conseguiram Sh Adow o f C hernobyl . Mas sete anos de desenvolvimento, de uma maneira ou de outra, deram frutos: o X-Ray Engine foi o primeiro mecanismo a usar o revolucionário conceito de renderização de sombreamento diferido . Acredita-se que o STALKER seja mais um jogo do DX8 com alguns elementos dos recursos do DirectX9. Portanto, isso é fundamentalmente errado . Para ser preciso, exatamente o oposto é verdadeiro. O mecanismo de raio-X contém três renderizadores completos: r1 (Static Lighting - DX8), r2(Iluminação dinâmica de objetos - DirectX9) e r2a (R2 + iluminação dinâmica total). Basta olhar para o console e digite "help" para ver a escala das opções para cada renderizador.

Você pode conversar bastante sobre esse jogo, o que é incrível de todos os pontos de vista, mas vamos nos limitar ao que já foi dito acima ... e ainda assim adicionar que o STALKER é um dos primeiros jogos em que a técnica volumétrica de renderização de texturas foi aplicada - Parallax Mapping. No entanto, há uma nuance. Na versão original do jogo (com o patch mais recente 1.0006), essa técnica não pode ser controlada pelo console (ou eu não percebi nenhuma alteração) e geralmente existe uma opinião de que o código de sombreador responsável por seu aplicativo não funciona como deveria. Portanto, muitos fãs reescreveram esses e muitos outros efeitos de sombreamento do STALKER, para ficar claro para o usuário final que seu sistema pode ser seriamente carregado com cálculos inúteis ... e, é claro, para comparar com qualquer coisa. Por exemplo, você pode comparar o código original e personalizado STALKER Shaders MAX 1.05. É discutível, é claro. Mas como estamos falando de sombreadores personalizados, há mais uma coisa que eu gostaria de contar. Efeito de desfoque de fundo ao focalizar o assunto - Profundidade de campo



. O 3dfx começou a falar sobre isso nos dias do DirectX6, mas não chegou a uma implementação completa. No original e aqui não estava, mas no STALKER Shaders MAX 1.05 ele finalmente apareceu. A maquiagem foi mal feita, mas é muito preguiçosa para refazê-la; então, olhe para o fundo flutuando com um olhar direto para o perseguidor: talvez também não seja a implementação mais bonita, mas é amadora, então ela vai cair :) Agora eu queria falar sobre: ​​STALKER tem duas grandes implementações do efeito Bloom HDR. O padrão e o chamado Fast-Bloom, que são incluídos separadamente. Aqui estão eles em ação: Bloom Fast-Bloom














Tendo em vista que o Fast-Bloom é incluído separadamente, é possível que exista algum tipo de implementação complexa, em vez de aproximação por simples desfoque gaussiano. Ou então são ecos de teste.

A STALKER também apresentou o Motion Blur! Para habilitá-lo, você precisa iniciar o jogo com a opção -mblur e também prescrever o efeito no console. Então você obtém algo como:



Mas terminar com isso seria completamente injusto para um mecanismo como o raio X ... O fato é que o desenvolvimento foi atrasado e não foi totalmente depurado, mas

Vou informar todos os ignorantes apenas

que em STALKER existe até iluminação global . Ou seja, se lhe parecer que a sala claramente não possui reflexos de luz:



... então você pode dizer r2_gi 1 e então ficará assim:



Doce: Célula Splinter de Tom Clancy


Desde o GeForce4 Ti , um recurso discreto de Shadow Buffers apareceu nas placas da Nvidia . Não consegui encontrar uma lista completa de jogos usando essa tecnologia (provavelmente porque não é), mas qualquer proprietário de sorte do Xbox tão aclamado sabia exatamente como eram as sombras da nova geração. Bem, agora olhamos para o recurso da marca em ação, apenas no PC ... mas primeiro um pouco de teoria:

...
Sistema de iluminação dinâmica Splinter Cell

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 (do patch 1.3)

Penso que o princípio de projetar sombras foi descrito com muita clareza. Do exposto, o seguinte:

  • Atualmente, o Shadow Buffers é um Mapeamento de Sombras tão comum, que o hardware acelerou nas placas NVIDIA devido à presença de um buffer especial para as placas shadow.
  • O Splinter Cell de Tom Clancy é um ótimo jogo em um ótimo mecanismo com as mesmas ótimas otimizações:


    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 — . :)


Bem, veja como fica no final da NVIDIA GeForce FX 5200 ( NV34 ):

Sombras de projeção: Buffers de sombra: por uma questão de fidelidade, tentei olhar para a ATI Radeon 9600 ( RV350 ). De fato, os Buffers de sombra não serão ativados aqui e o 3D-Analyze não será salvo. O modo Sombras de projeção parece idêntico ao NV34 : É interessante que o jogo no modo Buffers de sombra ainda comece na GeForce GTS 450 , mas terá a seguinte aparência: Qual das opções está correta (na GeForce FX 5200 ou na GTS 450) ainda é desconhecida, então pois existe uma opinião de que no jogo existe um erro não corrigido com sombras















. Mas há uma opinião de que o problema está nos drivers da nvidia, portanto, para um mergulho completo, você precisa usar os cartões antigos (afinal, os novos cartões simplesmente não funcionam com os drivers antigos).

Felizmente, os mesmos problemas com sombras na próxima parte do divisor (que Pandora Tomorrow ) são hoje parcialmente resolvidos por um envoltório de ventilador .

A propósito
, - , Tom Clancy’s Splinter Cell Mission Pack. , , . GOG-.

Isso pode começar a terminar, mas parece-me que a história estaria incompleta sem mencionar outra técnica notável ...

Superfícies de ordem superior

Vamos começar com como a ATI herdou o histórico da tecnologia de hardware TruForm . Cientificamente, isso é chamado de N-Patches (ou, equivalentemente, Triângulos PN ). Ele apareceu na Radeon 8xxx, mas o pico de popularidade chegou, talvez, exatamente na época da Radeon 9xxx ( R300 ). Eu posso entender se você estava com preguiça de seguir o próximo link, então em duas fotos sobre a essência do TruForm : a

partir de um bule de chá TruForm , aumentando independentemente o número de primitivas , fará com que você fique assim:







Isso foi chamado de mosaico adaptativo - o uso de um chip de placa de vídeo para aumentar o número inicial de primitivas, com base nas predefinidas transmitidas pelo aplicativo (jogo). Foi prometido que será possível ver a ação imediatamente em todos os jogos e não é necessário nenhum suporte do jogo. Na esperança disso, persegui os campos de treinamento por muito tempo nos meus jogos favoritos e não assim, tentando vê-lo na prática. Na verdade, na última lenha do RV350 (Catalyst 10.2), o TruForm foi estupidamente banido. Veja bem, há uma opinião de que a técnica inteligente do TruForm reuniu absolutamente tudo o que havia na cena quadrada, e as mesmas caixas de madeira com suprimentos se tornaram redondas. O equipamento foi modificado primeiro, mas depois simplesmente jogado fora dos drivers.

Mas temos um interesse histórico com você, e é assim que ele realmente parecia nos drivers do Catalyst 5.7:



Portanto, ao contrário de nossas expectativas, o TruForm só poderia ser visto se o jogo realmente o suportasse. Ah, esses profissionais de marketing, ah! Bem, como é impossível forçá-lo a todos os jogos seguidos, onde você pode vê-lo? Na mesma Wikipedia, é oferecida uma pequena lista de jogos principalmente com patches de terceiros para o TruForm, o que não é autêntico. Se falamos de jogos com suporte nativo ao TruForm, sem dúvida, na maioria das vezes, vimos as verdadeiras formas de Serious Sam . Como eu pessoalmente não tenho nenhuma simpatia por suas formas, arrisco sugerir que você veja as verdadeiras formas de Neverwinter Nights :



E aqui está como realmente estava com as caixas: E tudo ficaria bem, mas já na versão Catalyst 5.8 era realmente possível observar seus artefatos de majestade: E então o recurso foi finalmente enterrado. Então, o que estou fazendo ... Veja, mais ou menos na mesma época, a NVIDIA também herdou tecnologia semelhante na história. Eles começaram a usar uma técnica chamada Patches retangulares e triangulares ( RT-Patches ) no Geforce 3 Ti , além disso, em hardware. É engraçado, mas o problema de implementar RT-Patches











consistia, de fato, na própria implementação. Se quiséssemos criar um mecanismo de jogo para essa técnica, todas as fórmulas de superfície para seu mosaico adaptável teriam que ser inseridas nesse mecanismo no estágio de desenvolvimento. Portanto, se queremos que nosso mecanismo funcione em qualquer outro mapa sem o suporte do RT-Patches, precisamos reescrever todos os polígonos novamente. Trabalho duplo total.

É provavelmente por isso que os RT-Patches não encontraram suporte dos desenvolvedores de jogos, mas afirma-se que eles poderiam ser vistos no Aquanox .

É verdade que existe uma opinião de que:

...
Os drivers NV20 e NV25 deixaram de oferecer suporte ao mosaico de hardware de superfícies lisas (HOS baseado em RT-Patches). O motivo disso está no DirectX - no caso em que a placa não suporta N-Patches no hardware, a API tenta emulá-los usando RT-Patches. O que, sem dúvida, faz com que os N-Patches sejam executados muito lentamente, ainda mais lentamente que a emulação de software sensata. A NVIDIA foi forçada a desativar o RT-Patches, para que os jogos com suporte ao N-Patches não caíssem em um estupor difícil de explicar ao usuário comum em seus produtos mais recentes.

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

Algumas pessoas no OG tentaram honestamente encontrar drivers que suportassem RT-Patches ( ! E foram encontrados! ), Mas de alguma forma não avançaram mais.

Interessado na questão:

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





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





  • Uma lista de jogos com suporte nativo ao TruForm pode ser encontrada aqui . A lista de jogos com suporte a RT-Patches , infelizmente, não está em lugar algum.

    Ao procurar uma placa com suporte ao TruForm , observe que, começando com o DirectX 11 , o mosaico de hardware (a essência do TruForm ) deu uma segunda vida!

    Se você não conseguiu encontrar um mapa, não desanime: é provável que você possa sobreviver a um invólucro .

Em geral, tudo, mas ...

Um pouco de divulgação


O FX da GeForce . Quanto nesta palavra :)

Sabe-se que GeForce é uma abreviação de Geometric Force. Isso também foi chamado de NVIDIA GeForce256, devido à presença a bordo da revolucionária GPU (Geometric Processor Unit), que era então chamada de Hw T'n'L.

E aqui vem o FX :

...
A inclusão do 'FX' no final foi de duas áreas. Primeiro, a NVIDIA está divulgando isso como "O alvorecer da computação cinematográfica", de modo que o filme Efeitos Especiais leva o nome. Em segundo lugar, este é o primeiro projeto que os ex-engenheiros da 3dfx tiveram uma entrada séria em um projeto da NVIDIA e, portanto, em alguns sentidos, sua homenagem à sua entrada (não, é claro, uma maneira de aproveitar mais o reconhecimento de sua forte marca!) .

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

Ah, claro que não! :)

Compatibilidade com o Glide

Enquanto os engenheiros da NVIDIA persistentemente apelidavam seus filhos ( NV30 ) para um estado funcional, os profissionais de marketing estavam vendendo pré-pedidos como na publicidade da Vaporone. Para aumentar os compradores em potencial, a nova API NvBlur foi desenvolvida , um dos principais recursos da compatibilidade com a API Glide. Obviamente, o NvBlur não existia mais do que o 3dfx Voodoo 590 ou o 3dfx Voodoo Reloaded .

Um novo Dawn

Bem, sim, se alguém se lembra, em 2012 a NVIDIA ressuscitou a demo . Quando você olha para essas coisas, às vezes parece que este é realmente um vídeo gravado. Foi o DirectX11. Mas mesmo agora não é mais onde a indústria de jogos está agora ...





Bem, você sabe ...



Em geral, é claro, todo esse épico com um nascer do sol em cores flutuantes inspirou algo como o seguinte:

No próximo GDC, um desenvolvedor de jogos olha com desgosto a demonstração do Duma3 em uma tela de 1024x768. O FPS nem aparece.

Desenvolvedor : - Bem, me diga por que, depois de tantos esforços, vejo novamente fina no chão da tela e monstros do tamanho de um minimapa?
NVIDIA : - Foi por causa da ATI que não conseguimos fazer nada!
ATI : - Sim, a Microsoft definiu as tarefas novamente ...
Microsoft : - A propósito, belos slides também são filmes!

Em geral, o nascer do sol acabou por ser controverso, mas o pôr do sol ainda era o necessário:



Nesse mesmo pôr do sol, a NVIDIA conseguiu recuperar seu status com seu próximo chip NV40, que foi pontual e lutou heroicamente com o biatlo ATI R420 no Half-Life 2 . Mas todos sabemos: tudo graças ao fato de o NV40, embora fosse considerado uma nova solução arquitetônica, ainda consistir em pelo menos 70% de água NV30 .

É aí que a precisão do FP32 é realmente útil.


GeForce6 6600 — NVIDIA , — NV43 NVIDIA .

Valeu


A administração do old-games.ru pela capacidade de baixar de forma rápida e gratuita 20 jogos em massa, apenas para verificar a estrutura do arquivo e executá-lo uma vez.

Para um homem que, em um ataque de intriga com minhas próximas resenhas, me deu esse exemplo inestimável de agiotagem e grandeza do passado em todos os sentidos :)

...? TBC? ...


Referências
! 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/pt384037/


All Articles