Adelante al pasado. Geforce FX El amanecer de la guerra

Desde su fundación, Microsoft ha podido hacer dos de las cosas más importantes de la vida: analizar algo extraño a tiempo y ganar algo de dinero. En gran parte gracias a Microsoft, como el principal generador de las ideas más maximalistas, toda la industria de TI ha estado (y todavía está) desarrollando vías de desarrollo que son ventajosas principalmente para Microsoft. El resultado de la implementación de muchas de estas ideas no solo fue la quiebra de muchos gigantes de la industria de TI, sino también una rápida unificación universal. Todos los componentes de la PC, desde el hardware hasta el software, se volvieron cada vez más universales y similares, perdiendo la capacidad de diferir favorablemente. Y así, en 2002, cuando Microsoft volvió a poner su juguetón monopolio en la industria 3D, la especificación DirectX9 se lanzó en una ola atronadora sobre los fabricantes de chips 3D ...

Y como todos recordamos bien) el próximo año 2003 marcó la llegada de los gráficos de películas en la PC. Bueno, sí, así fue: WinXP, juegos de DVD que requieren la instalación de DirectX9, y ... las mismas tarjetas de video con algún tipo de sombreadores. Condicionalmente, podemos decir que se suponía que la especificación DX9 pondría fin a las diferencias en los resultados de renderizar la misma imagen en tarjetas de diferentes fabricantes . Sin embargo, incluso esta especificación finalmente no pudo frenar NVIDIA. Y con razón, de lo contrario, ¿por qué NVIDIA invertiría en algo prometedor?

Y aquí llegamos a lo que me impulsó una vez más a pegar un cadáver con un palo y aún escribir esta crítica.

Peligro: Dentro de muchas imágenes GRANDES. Solo el primero es DOS megabytes.

Quizás tú tampoco sabías:

...
David Kirk agrega un poco de historia de fondo sobre cómo esta tecnología se introdujo en GeForce FX:

cuando adquirimos 3dfx, NV30 estaba en marcha y había un proyecto [ Fusion con nombre en código ] en marcha en 3dfx. Los equipos se fusionaron y los proyectos se fusionaron. Hicimos que cada equipo cambiara para comprender y presentar la arquitectura del otro y luego defenderla. Luego elegimos y elegimos las mejores partes de ambos.

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

En el momento de esta declaración, la GeForce FX ya era una construcción notable a largo plazo y llegaba muy tarde al mercado. Puedes decir que NVIDIA una vez logró evitar ese mismo día

Cuando todas las canciones están en silencio


Por el rabillo del ojo




De hecho ... Lo primero que se precipitó hasta el borde de nuestros ojos al ver el legendario dastbuster (GeForce FX 5800) fueron las dimensiones.

imagen

Aquí hay un monstruo de dos ranuras junto al Radeon 9800:

imagen

para comprender la razón de una solución tan extraordinaria, tendremos que mirar más de cerca ...

Más cerca del corazón



imagen

La GeForce FX, aunque no fue la primera GPU superescalar del mundo, fue sin duda la GPU superescalar más compleja de su tiempo (y lo siguió siendo durante mucho tiempo). Tan complejo que aún falta información precisa sobre los componentes aparentemente más simples de su arquitectura interna. Como resultado, su entrada al mercado se pospuso ... se pospuso ... Y finalmente, llegó, tan esperado.

NV30: El amanecer de CineFX



Para ser precisos, esta parte arquitectónica más compleja del NV30 se llamaba CineFX (1.0) Engine . Los vendedores de NVIDIA decidieron que sonaría más atractivo que el motor nfiniteFX III . Polémico, pero cierto.

CineFX (que no comprendían: Cine matic Ef Fe CTS ) es en gran parte el mérito de 3dfx ingenieros (recuérdese la sensacional T-Buffer). Contiene todo lo que necesita para representar efectos especiales cinematográficos en su hogar.

Puedes preguntar: ¿qué necesita un cine para principiantes? Todo es simple El cine principiante solo necesitará lo más necesario: precisión de 128 bits en la representación de datos para trabajar con coma flotante yCanal de gráficos totalmente programable con soporte para Shader Model 2.0, lo que le permite imponer hasta 16 texturas. ¿Estás intrigado? Sí, esto está aquí:

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


La mayoría de las discusiones pacíficas sobre el rendimiento de uno u otro dispositivo suelen caer en un holivar sobre el tema "¿Qué es más importante: hierro o software? »En realidad, no importa cuántas personas no quieran alejarse de la realidad, sino hardware sin software: es hardware :)

En el momento del lanzamiento de la GeForce FX 5800 ( NV30 ), un competidor frente a la Radeon 9700 Pro ( ATI R300 ) fue divertido en el patio durante más de un cuarto . Era febrero de 2003. Hoy en día, tal demora en la muerte es similar, y es precisamente por eso que podemos llamar al 2003 con seguridad el año que no es otro que el año de NVIDIA.

Fue así: viene NV30a la bolsa de trabajo, y no hay una sola con conocimiento de DirectX9 en la lista de vacantes. Resulta que el NV30, por así decirlo, no llegó tarde a ninguna parte ... De hecho, los primeros juegos poderosos conocidos para DX9 (como DooM3, HL2, NFS Underground 2 ) aparecieron solo en 2004. El tan esperado Stalker ya en 2007.

Me interesa el hecho de que simplemente no había nada para comparar el rendimiento de las tarjetas para los revisores en 2003. Seré sincero: cuando escribí este artículo, analicé la imagen durante mucho tiempo, pero nunca conocí una sola revisión de NV30 con pruebas DX9 en vivo. Básicamente, las capacidades de DX9 se probaron en 3DMark ...

Y una historia genial está conectada con esto
, 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, en esos años a menudo se escuchaba 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

Y, aunque el mismo John Carmack podría argumentar fácilmente con esta declaración, en cualquier caso, esta es una clara confirmación de que el hierro no es nada sin software. Además, de hecho, resultó que el rendimiento del sombreador del NV30 dependía desastrosamente principalmente de cómo se escribió el código del sombreador (incluso una secuencia de instrucciones es importante). Fue entonces cuando NVIDIA comenzó a avanzar de todas las formas posibles en la optimización del código de sombreador para NV30 .

¿Por qué se necesitaba esto? Y luego, el NV30 con la implementación de sombreadores no es tan simple:


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

Es decir, la arquitectura NV30 no le permitió revelarse completamente usando el código del estándar SM2.0. Pero ahora, si baraja las instrucciones un poco antes de la ejecución, quizás incluso reemplace una con la otra (hola, 3DMark 2003) ... Pero NVIDIA entendió: es mucho más efectivo tratar la causa y no las consecuencias.

Toma dos. NV35: el anochecer

Esta no era una nueva solución arquitectónica, sino una mejora muy competente. Los ingenieros de NVIDIA corrigieron tan fanáticamente sus errores que incluso heredaron en la historia de los shaders el Shader Model 2.0a (SM2.0 a ) oficialmente documentado , que se denominó modelo NVIDIA GeForce FX / PCX optimizado, DirectX 9.0a . NV35 , por supuesto, no fue la panacea , pero lo recordaron: sin



embargo, debido a la extrema complejidad de la microarquitectura NV30 , algunos matices muy interesantes en el NV35 se mantuvieron sin cambios. Por lo tanto, en sus especificaciones, los revisores a menudo indicaron algo como:

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

Este es uno de los "componentes más simples" que mencioné al principio del artículo. Sí, la terminología es algo extraña, pero eso no es tan malo. De hecho, de esta manera, los especialistas en marketing simplemente intentaron transmitirnos las cosas más simples: cuántas tuberías de vértices y píxeles (unidades de sombreado, si lo desea) tiene el chip.

Como cualquier persona normal que haya leído dicha especificación, mi reacción normal es: bueno, ¿cuántos hay? Entonces, todo el asunto es que nadie lo sabe :) Parece que las características más comunes de un chip de gráficos, de las cuales podría sacar inmediatamente algunas conclusiones sobre el rendimiento.

Bueno, sí, el mismo ATI R300todo es transparente: 8 píxeles y 4 sombreadores de vértices ... Ok, podrías ejecutar la misma GPU-Z y, siguiendo la terminología establecida, él te diría que, contra esto , el NV35 tiene solo 4 píxeles y 3 sombreadores de vértices. Pero eso no sería del todo exacto, porque en los albores de los juegos de películas, NVIDIA tenía su

mirada alternativa a los sombreadores
, . , , .

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



imagen

De todos modos, si el objetivo principal de los ingenieros de NVIDIA en esos días era heredar vívidamente en la historia, ¡sin duda lo lograron! Además, apareció otra característica interesante en NV35 , los competidores no tenían un análogo: la tecnología UltraShadow , que, por cierto, se discutirá más adelante :) Pero dejemos de hablar de lo bello y regresemos

Del cielo a la tierra


Afortunadamente , no tengo un dastbuster ... (pero siempre puedes mirar una exhibición de museo ). Afortunadamente, porque las orejas son más caras . Además, él y su sofisticado hermano, GeForce FX 5900, eran desproporcionados para la billetera de una persona simple con necesidades simples. Y para esas personas, NVIDIA ofreció opciones para la GeForce FX 5600 en el chip NV31 , pero tampoco la obtuve.

Y ahora, por casualidad, después de 12 años, puedo decir, "absorbieron" tal trozo de oficina: ¡



pero no está zumbando! Es decir, además del NV31 truncado se lanzó más y NV34 , que no es un rendimiento diferente, sino que era un matrimonio NV31 .



Ahora brevemente sobre lo que es interesante en NV34 no encajaba :(



  • El NV30 / NV35 tenía un diseño de tuberías de 4x2 píxeles, y solo quedaba 4x1
  • Curiosamente, Everest y GPU-Z le dirán que hay 2 sombreadores Vertex, mientras que Wikipedia parece ser 1. Aquí tiene la arquitectura cerrada de FP Array;)
  • El NV30 / NV35 introdujo la compresión paranoica de todo lo que acaba de llegar a la tubería de gráficos. ¡Esto incluyó no solo texturas, sino incluso z-buffer y los valores de color de cada píxel en el frame buffer! Entonces, en NV34, este complicado algoritmo de compresión sin pérdida 4: 1 no encaja :)
  • La tecnología UltraShadow tampoco se incluyó ( solo modelos GeForce FX 5900 y 5700 ). Pero no te enojes, te mostraré todo;)
  • Esta instancia tiene un ancho de bus de memoria de hasta 64 bits (sí, como las viejas tarjetas de video 2D)

Aparentemente, casi nada encaja :) Pero lo peor ni siquiera fue eso. Todos conocen esta palabra.

Conductores


Aquí, ahora mismo, muchos de ustedes deben estar sonriendo. Esta fue probablemente la implementación más épica después de TNT2.

Si ni siquiera recuerda esto:

imagen

... definitivamente debería recordar esto: no

imagen

hace falta decir que, con la llegada de DX9, los proveedores comenzaron a golpear a los conductores con una velocidad increíble, y recordaron WHQL solo como último recurso. El rendimiento de la misma tarjeta DX9 podría bailar tan dinámicamente que a veces una tarjeta DX8 podría convertirse en su compañera. Así fue, por ejemplo, con la GeForce MX 440 (NV18) , que de una cierta versión de leña se emuló con la emulación SM2.0, pero luego se apuñaló. Como algo indecente se convierte: NV18 gana NV34 en sombreadores, que ni siquiera tiene ...

Aquí, por ejemplo, hay buenas estadísticas sobre problemas populares con GeForce FX .

Sin embargo, había mucho de lo que estar orgulloso. Por ejemplo:

  1. Filtrado adaptativo de texturas

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

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

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

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

    imagen

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




Esta vez no mediré el rendimiento y te mostraré fotos aburridas con monitoreo de fps. Esto no es lo que me interesa en esta generación de tarjetas de video. En general, en esta generación de tarjetas de video, mi interés en ellas termina, porque Geforce FX fueron las últimas tarjetas que tenían algo único que sus competidores no tenían. Eso es todo sobre esto en primer lugar.

Al mismo tiempo, decidí diversificar mucho: veamos diferentes características en diferentes juegos :) Si está interesado, entonces la configuración de gráficos en los juegos: "colores ricos máximos". ¿Cine después de todo, o dónde? Es cierto que los permisos de cine en los juegos aún no se proporcionaron para entonces ...

Pero antes de apresurarnos a través de los sombreadores, me gustaría advertir: las imágenes son en realidad mucho más grandes que las que se muestran en la página. Cuando me pareció necesario, ofrecí la posibilidad de hacer clic en la imagen para abrir la fuente. ¡No descuide si está interesado! También a continuación habrá algunos gifs. Los gifs son tales que la calidad de la conversión se reduce inexorablemente. Esto debe aceptarse porque su función principal es la animación en la web y no una presentación fotográfica en el museo. ¡Pero también puedes hacer clic en ellos!

Entonces los juegos ...

Doom3

  • Representadores: OpenGL 1.5
  • Shadowtech: Stenciled Shadow Volumes (a través del reverso de Carmack) + Tecnología UltraShadow
  • Lenguaje de sombreado: ARB ASM

UltraShadow ... Suena, ¿eh? Hablaremos de eso aquí. Hay una leyenda:


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

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


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

A pesar de que a todas las personas serias en este planeta les gusta empezar así , John Carmack'a también fue un plan muy interesante . Es comprensible, pero ¿de qué otra manera trabajar? ;)

En primer lugar, gracias a este plan de puntos, John Carmack fue un poco más honesto que Gabe Newell. Simplemente rechazó cualquier extensión de OpenGL patentada cuando programó el motor DooM3, enfocándose en las extensiones ARB _ *** disponibles públicamente. Aunque para la compatibilidad del motor con las tarjetas antiguas que no son DX9 se escribieron las rutas de código correspondientes, todo fue honesto con las nuevas tarjetas: tuvieron que luchar en igualdad de condiciones en su motor. Ahora muchos de ustedes protestarán, dicen, pero ¿qué pasa con:


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,
dos o tres pases de renderizado), NV30 (con todas las funciones, solo pase) y
ARB2.

...
John Carmack's .plan_2003
content.atrophied.co.uk/id/johnc-plan_2003.pdf

Analicemos este momento con más detalle. De hecho, otros experimentos con el NV30 no desaparecieron. Quizás John simplemente no podía soportar las membranas:

...
Las tarjetas NV30 actuales tienen algunas otras desventajas: ocupan dos
ranuras y, cuando se enciende el ventilador de enfriamiento, son MUY FUERTES. Por lo general, no me
importa el ruido del ventilador, pero el NV30 me molesta.

...
John Carmack's .plan_2003
content.atrophied.co.uk/id/johnc-plan_2003.pdf

Sea como fuere, pero solo 6 codepases "en funcionamiento" (y 1 experimental :) se incluyeron en el lanzamiento.



NV10, NV20, R200. Como su nombre lo indica, estos tres son específicos de algunos chips.
Cg, ARB, ARB2. Estos tres son universales. E incluso a pesar del hecho de que ATI todavía está entrenado en Cg, este pase de código todavía estaba deshabilitado (¿para la honestidad del experimento?). Entonces ARB2 aquí es el renderizador más sofisticado.

En cuanto al procesador NV30 , se quedó en Alpha .



Así que todo fue honesto en general. En el NV30 / R300, viste DooM3 así:



mientras que en algunas GeForce MX 440 (NV18) , por ejemplo, DooM3 era así:



Pero volviendo al punto en que el plan no afectó ...

El famoso " algoritmo inverso de Carmack " y soporte para NVIDIA UltraShadow .
Es interesante aquí. Podría leer sobre el algoritmo por referencia, pero en general, el "Carmack hack on shadow" en sí mismo no es más que una forma de obtener sombras "desde el opuesto". Por cierto, esto no es sorprendente, considerando cómo está diseñado el motor DooM3 en sí, id Tech 4 , después de todo, es esencialmente una sombra sólida :) Y el NV35 solo tiene soporte de hardware para tales fraudes, por cierto, como todas las tarjetas NVIDIA posteriores . Por ejemplo, mi GTS 450 (resaltado):



¿Pero qué tipo de tecnología es esta?

En términos simples, la técnica UltraShadow permite a los programadores establecer límites de iluminación en una escena 3D. Esto le permite limitar el cálculo de los efectos de cada una de las fuentes de luz. Como resultado, la cantidad de cómputo gastado en el cálculo de los efectos de la iluminación y la sombra se reduce drásticamente.




Y parece que las características de UltraShadow II incluso cuentan con tomas DooM3 y se aseguran de que se utilice la tecnología. De hecho, con el lanzamiento de DooM3, resultó que no fue hasta el final :

...
Anthony'Reverend'Tan
¿Cuál es la situación con respecto a la implementación de la prueba de límites de profundidad en el juego? No parece tener ningún efecto en un
NV35 o NV40 usando el cvar.

John Carmack
Nvidia afirma una mejora, pero podría requerir controladores inéditos. No es gran cosa de una manera u otra.

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

Y, sin embargo, lo que falta todavía se puede activar a la fuerza hoy (y en el último parche incluso se activa de forma predeterminada). De hecho, solo obtienes un aumento en el rendimiento, pero no hay diferencias visuales. Bueno, gracias por eso ...

Si alguien está claramente interesado (r_showshadows 1)
Ultrashadow:



Ultrashadow:



Need for Speed: Most Wanted

  • Representadores: Direct3D9
  • Shadowtech: mapeo de sombras
  • Lenguaje de sombreado: HLSL

Como estamos hablando de sombras, ¿cómo no podemos recordar el NFS: MW tan en auge? Entiendo que es una elección extraña, pero solo a primera vista ...

... En esos días era muy popular decir que NFS: MW es un buen ejemplo de cómo puedes emular HDR de forma barata y enojada .


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

¿Parecería cierto lo que vemos a lo largo del juego?

Overbright (Bloom):



Motion Blur:



y tal vez a veces nos damos cuenta de World Reflections : si realmente quisieras, podrías convertir fácilmente un atuendo de película ( Tratamiento visual = alto ): en pantalones cortos elegantes ( Tratamiento visual = bajo ): Aún así, los cargos de emulación no son merecidos aquí, porque el mismo Bloom (sin duda tomado como base aquí) sigue siendo un efecto HDR. Solo muchas otras cosas en este juego, por ejemplo, el efecto de lluvia o la configuración de detalles de sombra, están disponibles solo para los propietarios de tarjetas de video más potentes que NV34 .













Bueno, aquí estamos enganchados donde comenzamos. Particularmente atento aún podría notar una implementación muy ofensiva de los mapas en la sombra. Se cree que el juego simplemente usa mapas de sombras de baja resolución. Tal vez fue un compromiso, tal vez no hubo tiempo suficiente para implementar un ajuste más detallado de las sombras, pero tal vez nuevamente se trata de las reservas de código ... ¿Quién sabe? Quién mejor que la utilidad de verificación de compatibilidad EA para saber esto mejor: en



total, en el NVIDIA GTS 450 la escena se ve así:



Bueno, a primera vista, todo es lógico: en NV34 hay claramente menos sombras (miramos la sombra debajo de la máquina):



Ahora, verifique las reservas de código . Para esto necesitamos 3D-Analyze : Sustituido NV34



(FX 5200) en el NV35 (FX 5900), inicie:



Como puede ver, ahora no hay mucha diferencia con el GTS 450. Existen limitaciones artificiales para garantizar un mejor rendimiento. Es cierto que la calidad de las sombras sigue siendo difícil de llamar buena :)

Por cierto, en el Radeon 9600 ( RV350 ) se ve así:



Muy lejos

  • Representadores: Direct3D9; Opengl 2.0
  • Shadowtech: volúmenes de sombras estarcidos + mapeo de sombras
  • Lenguaje de sombreado: CG

Se cree que Far Cry fue el primer juego completo que realmente admite el procesamiento HDR (a diferencia de Half-Life 2: Lost Coast). Al menos su última versión oficial (1.4). Sí, usted mismo ve lo elegante que se ve el famoso agua en Far Cry usando HDR:





También se puede ver agua sin HDR.




En general, después del lanzamiento del parche 1.4, hubo un conjunto completo de todos los efectos de moda en Far Cry, por ejemplo, la misma Heat Haze (mira la inscripción en la pared o la lámpara en el techo):



Por cierto, Ubisoft abogó activamente por el nuevo AMD64, así que Far Cry se produjo en dos versiones: x86 y x64 (por cierto, era exactamente lo mismo con Half-Life 2 ). También se ha lanzado contenido exclusivo para la versión x64 . Como resultado, apareció de inmediato un Mod Convertor de 64 a 32 bits no oficial , que le permite ver este Contenido Exclusivo en un sistema de 32 bits. Mucho más tarde, apareció un parche no oficial antes de la versión 1.6 , en la que, tal vez, Este contenido exclusivo finalmente ha migrado a la versión x86 de Far Cry. Te sugiero que compruebes este momento tú mismo.

Sí, si esto no es suficiente para usted, puede jugar con el renderizador experimental OpenGL incluido en el paquete. Cómo hacerlo está escrito aquí (leído de las palabras System.cfg ).

STALKER: SHOC

  • Representadores: Direct3D8 - Direct3D9
  • Shadowtech: mapeo de sombras
  • Lenguaje de sombreado: HLSL

Eso es realmente “shock”, dado que en un principio el juego uno se desarrolla , entonces otra , pero al final se consiguió Sh Adow o f C hernobyl . Pero 7 años de desarrollo, de una forma u otra, han dado sus frutos: el motor de rayos X fue el primer motor en utilizar el revolucionario concepto de renderizado de sombreado diferido . Se cree que STALKER es más un juego DX8 con algunos elementos de las capacidades de DirectX9. Entonces esto es fundamentalmente incorrecto . Para ser precisos, exactamente lo contrario es cierto. El motor de rayos X contiene tres renderizadores completos: r1 (Iluminación estática - DX8), r2(Objetos Dynamic Lighting - DirectX9) y r2a (R2 + Full Dynamic Lighting). Simplemente mire la consola y escriba "ayuda" para ver la escala de las opciones para cada renderizador.

Puedes hablar mucho sobre este juego, que es increíble desde todos los puntos de vista, pero limitémonos a lo que ya se dijo anteriormente ... y aún así agregamos que STALKER es uno de los primeros juegos donde se aplicó la técnica de representación de textura volumétrica: Mapeo de paralaje. Sin embargo, hay un matiz. En la versión original del juego (con el último parche 1.0006), esta técnica no se puede controlar a través de la consola (o no noté ningún cambio) y generalmente existe la opinión de que el código de sombreador responsable de su aplicación no funciona como debería. Por lo tanto, hubo muchos fanáticos que reescribieron estos y muchos otros efectos de sombreador STALKER para que quede claro para el usuario final que su sistema puede cargarse seriamente con cálculos inútiles ... y, por supuesto, compararlos con cualquier cosa. Por ejemplo, puede comparar el código original y personalizado STALKER Shaders MAX 1.05 Es discutible, por supuesto. Pero como estamos hablando de sombreadores personalizados, hay una cosa más que me gustaría contar. Efecto de desenfoque de fondo al enfocar el sujeto: profundidad de campo



. 3dfx comenzó a hablar de esto en los días de DirectX6, pero luego no alcanzó una implementación completa. En el original y aquí no estaba, pero en STALKER Shaders MAX 1.05 finalmente apareció. El maquillaje se hizo mal, pero es demasiado flojo para rehacerlo, así que mire el fondo flotando con una mirada directa al acosador: tal vez tampoco sea la implementación más hermosa, pero es amateur, por lo que se reducirá :) Ahora quería contarle sobre: ​​STALKER ha dos grandes implementaciones del efecto Bloom HDR. El predeterminado y el llamado Fast-Bloom, que se incluye por separado. Aquí están en acción: Bloom Fast-Bloom














En vista del hecho de que Fast-Bloom se incluye por separado, es posible que exista algún tipo de implementación compleja, en lugar de aproximación por simple desenfoque gaussiano. O de lo contrario son ecos de pruebas.

STALKER también presentó Motion Blur! Para habilitarlo, debes iniciar el juego con el interruptor -mblur , y también prescribir el efecto en la consola. Entonces obtienes algo como:



Pero terminar con esto sería completamente injusto para un motor como X-Ray ... El hecho es que el desarrollo se retrasó y no se depuró por completo, pero

Informaré a todos los ignorantes solamente

que en STALKER hay incluso Iluminación Global . Es decir, si le parece que la habitación carece claramente de reflejos de luz:



... entonces puede decir r2_gi 1 y luego se verá así:



Dulce: la célula de la astilla de Tom Clancy


Desde la GeForce4 Ti , una característica discreta de Buffers de Sombra apareció en las tarjetas de Nvidia . No pude encontrar una lista completa de juegos usando esta tecnología (probablemente porque no lo es), pero cualquier afortunado propietario de la entonces aclamada Xbox sabía exactamente cómo eran las sombras de la nueva generación. Bueno, ahora miramos la característica de la marca en acción, solo en la PC ... pero primero una pequeña teoría:

...
Sistema de iluminación Splinter Cell Dynamic

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 (del parche 1.3)

Creo que el principio de proyectar sombras se ha descrito con bastante claridad. De lo anterior, lo siguiente:

  • Shadow Buffers es un Shadow Mapping tan común hoy en día, el hardware se aceleró en las tarjetas NVIDIA debido a la presencia de un buffer especial para las tarjetas shadow en ellas.
  • Tom Clancy's Splinter Cell es un gran juego en un gran motor con las mismas grandes optimizaciones:


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


Bueno, así es como se ve al final en la NVIDIA GeForce FX 5200 ( NV34 ):

Sombras de proyección: Buffers de sombra: Por fidelidad, traté de mirar el ATI Radeon 9600 ( RV350 ). De hecho, Shadow Buffers no se activará aquí y 3D-Analyze no se guardará. El modo Projection Shadows se ve idéntico al NV34 : es interesante que el juego en el modo Shadow Buffers todavía se inicie en la GeForce GTS 450 , pero se verá así: ¿Cuál de estos es correcto (en la GeForce FX 5200 o en la GTS 450) aún es desconocido? ya que existe la opinión de que en el juego en sí hay un error no corregido con sombras















. Pero existe la opinión de que el problema está en los controladores de nvidia, por lo que para una inmersión completa debe usar las tarjetas antiguas (después de todo, las tarjetas nuevas simplemente no funcionan con los controladores antiguos).

Afortunadamente, los mismos problemas con las sombras en la siguiente parte del divisor (que Pandora Tomorrow ) hoy se resuelven parcialmente mediante un envoltorio de ventilador .

Por cierto
, - , Tom Clancy’s Splinter Cell Mission Pack. , , . GOG-.

Esto podría comenzar a terminar, pero me parece que la historia estaría incompleta sin mencionar otra técnica notable ...

Superficies de orden superior

Comencemos con cómo ATI heredó la historia de su tecnología de hardware TruForm . Científicamente, esto se llama parches N (o, equivalentemente, triángulos PN ). Apareció en Radeon 8xxx, pero el pico de popularidad llegó, tal vez, justo en el momento de Radeon 9xxx ( R300 ). Puedo entender si eras demasiado flojo para seguir el siguiente enlace, así que en dos imágenes sobre la esencia de TruForm :

desde esa tetera TruForm , independientemente de aumentar el número de primitivas , te hará así:







Esto se llamó teselación adaptativa: el uso de un chip de tarjeta de video para aumentar el número inicial de primitivas basadas en las predefinidas transmitidas por la aplicación (juego). Se prometió que será posible ver la acción de inmediato en todos los juegos y no se requiere soporte del juego. Con la esperanza de esto, perseguí los campos de entrenamiento durante mucho tiempo en mis juegos favoritos y no en otros, tratando de verlo en la práctica. De hecho, resultó que en la última leña para RV350 (Catalyst 10.2) TruForm estaba estúpidamente prohibido. Verá, existe la opinión de que la ingeniosa técnica TruForm redondeó absolutamente todo lo que estaba en la escena cuadrada, y las mismas cajas de madera con suministros se volvieron redondas. El equipo se modificó primero, pero luego simplemente se expulsó de los controladores.

Pero tenemos un interés histórico con usted, por lo que así es como se veía realmente en los controladores Catalyst 5.7: por lo



tanto, contrariamente a nuestras expectativas, TruForm solo podría verse si el juego realmente lo respalda. Oh, estos vendedores, ¡ah! Bueno, ya que es imposible forzarlo a todos los juegos seguidos, ¿dónde lo puedes ver? En la misma Wikipedia, se nos ofrece una pequeña lista de juegos principalmente con parches de terceros para TruForm, lo que no es auténtico. Si hablamos de juegos con soporte nativo de TruForm, sin duda la mayoría de las veces vimos las verdaderas formas de Serious Sam . Como personalmente no simpatizo con sus formas, me atrevo a sugerirle que mire las verdaderas formas de Neverwinter Nights :



Y así es como fue realmente con las cajas: y todo estaría bien, pero ya en la versión Catalyst 5.8 era realmente posible observar sus majestuosos artefactos: y luego la característica finalmente fue enterrada. Entonces, ¿qué estoy haciendo? Verán, casi al mismo tiempo, NVIDIA también heredó una tecnología similar en la historia. Comenzaron a usar una técnica llamada Parches Rectangulares y Triangulares ( Parches RT ) en Geforce 3 Ti , además, en hardware. Es divertido, pero el problema de implementar parches RT











consistió, de hecho, en la implementación misma. Si queríamos crear un motor de juego para esta técnica, todas las fórmulas de superficie para su teselación adaptativa tenían que ponerse en este motor en la etapa de desarrollo. Por consiguiente, si queremos que nuestro motor funcione en cualquier otro mapa sin el soporte de RT-Patches, necesitamos reescribir todos los polígonos de manera clásica. Doble trabajo total.

Esta es probablemente la razón por la cual RT-Patches no encontró soporte de los desarrolladores de juegos, pero se afirma que podrían verse en Aquanox .

Es cierto que hay una opinión que:

...
Los controladores NV20 y NV25 han dejado de admitir la teselación de hardware de superficies lisas (HOS basadas en parches RT). La razón de esto radica en DirectX: en el caso de que la tarjeta no admita N-Patches en hardware, la API intenta emularlos utilizando RT-Patches. Lo que indudablemente hace que los N-Patches se ejecuten muy lentamente, incluso más lento que la emulación de software sensible. NVIDIA se vio obligado a deshabilitar los parches RT, por lo que los juegos con soporte N-Patches no cayeron en un estupor que era difícil de explicar al usuario promedio sobre sus últimos productos.

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

Un par de personas en OG honestamente intentaron encontrar controladores que admitieran RT-Patches ( ¡y se encontraron! ), Pero de alguna manera no avanzaron más.

Interesado en la pregunta:

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





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





  • Una lista de juegos con nativa TruForm apoyo se puede encontrar aquí . La lista de juegos con soporte para RT-Patches , por desgracia, no se encuentra en ningún lado.

    Cuando busque una tarjeta con soporte TruForm , tenga en cuenta que a partir de DirectX 11 , la teselación de hardware (la esencia de TruForm ) le dio una segunda vida.

    Si no puede encontrar un mapa, no se desanime: es probable que pueda sobrevivir a una envoltura .

En general, todo, pero ...

Un poco de divulgación


El FX la GeForce . Cuánto en esta palabra :)

Se sabe que GeForce es una abreviatura de Geometric Force. Esto también se llamó NVIDIA GeForce256 en vista de la presencia a bordo de la revolucionaria GPU (Geometric Processor Unit), que a menudo se llamaba Hw T'n'L.

Y aquí viene el FX :

...
La inclusión del 'FX' en el final fue de dos áreas. En primer lugar, NVIDIA está promocionando esto como "El amanecer de la informática cinematográfica", por lo que la película Efectos especiales lleva el nombre. En segundo lugar, este es el primer diseño que los antiguos ingenieros de 3dfx han tenido una aportación seria a un diseño de NVIDIA, por lo que en algunos sentidos es un homenaje a su aportación (¡no, por supuesto, una forma de aprovechar más el reconocimiento de su marca fuerte!) .

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

Ah, claro que no! :)

Compatibilidad con Glide

Mientras que los ingenieros de NVIDIA llamaron constantemente a su descendencia ( NV30 ) a un estado de trabajo, los vendedores vendían pedidos anticipados como en la publicidad de Vaporone. Para aumentar los compradores potenciales, incluso se desarrolló la nueva API NvBlur , una de cuyas características principales era la compatibilidad con la API Glide. Por supuesto, NvBlur no existía más que 3dfx Voodoo 590 o 3dfx Voodoo Reloaded .

Un nuevo Dawn

Bueno, sí, si alguien lo recuerda, en 2012 NVIDIA resucitó la demo . Cuando miras esas cosas, a veces parece que este es un video realmente filmado. Fue DirectX11. Pero incluso esto ya no es donde está la industria del juego ahora ...





Bueno, ya sabes ...



En general, por supuesto, toda esta épica con un amanecer en colores flotantes inspiró algo como lo siguiente:

en el próximo GDC, un desarrollador de juegos mira con disgusto la demostración de Duma3 en una pantalla de 1024x768. Los FPS ni siquiera se muestran.

Desarrollador : - Bueno, ¿dime por qué, después de tantos esfuerzos, veo de nuevo en el piso de la pantalla y monstruos del tamaño de un minimapa?
NVIDIA : - ¡Fue gracias a ATI que no logramos hacer nada!
ATI : - Sí, Microsoft volvió a establecer las tareas ...
Microsoft : - Por cierto, ¡las diapositivas hermosas también son películas!

En general, el amanecer resultó ser controvertido, pero el atardecer seguía siendo lo que se necesitaba:



en ese mismo atardecer, NVIDIA logró recuperar su estado con su próximo chip NV40, que llegó a tiempo y luchó heroicamente con el biatlón ATI R420 en Half-Life 2 . Pero todos lo sabemos: todo gracias al hecho de que el NV40, aunque se consideraba una nueva solución arquitectónica, todavía consistía en al menos un 70% de agua NV30 .

Ahí es donde la precisión FP32 es realmente útil.


GeForce6 6600 — NVIDIA , — NV43 NVIDIA .

Gracias


La administración de old-games.ru permite la descarga rápida y gratuita de 20 juegos en masa solo para verificar la estructura del archivo y ejecutarlo una vez.

Para un hombre que, en un ataque de intriga con mis próximas críticas, me ha lanzado este invaluable ejemplo de agresión y grandeza del pasado en todos los sentidos :)

...? TBC? ...


Referencias
! 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/es384037/


All Articles