Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³? И Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ€Π΅Π½Π΄Π΅Ρ€? Π‘Π»ΠΎΠ²Π°Ρ€ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹Ρ… ΠΈΠ³Ρ€.

  • Алгоритмы
    • Tutorial

    ΠŸΡ€ΠΈΠ²Π΅Ρ‚, Π΄Ρ€ΡƒΠ³! Π’ этот Ρ€Π°Π· я ΠΎΠΏΡΡ‚ΡŒ ΠΏΠΎΠ΄Π½ΠΈΠΌΡƒ вопрос ΠΎ Π³Ρ€Π°Ρ„ΠΈΠΊΠ΅ Π² ААА -ΠΈΠ³Ρ€Π°Ρ…. Π― ΡƒΠΆΠ΅ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π» ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΡƒ HDRR (Π½Π΅ ΠΏΡƒΡ‚Π°Ρ‚ΡŒ с HDRI) ΠΈ Ρ‡ΡƒΡ‚ΡŒ-Ρ‡ΡƒΡ‚ΡŒ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠ» ΠΎ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ†ΠΈΠΈ Ρ†Π²Π΅Ρ‚Π°. БСгодня я расскаТу, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ SSLR (Ρ‚Π°ΠΊ ΠΆΠ΅ извСстная ΠΊΠ°ΠΊ SSPR, SSR): . ΠšΠΎΠΌΡƒ интСрСсно - ΠΏΠΎΠ΄ ΠΊΠ°Ρ‚.

    Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Deferred Rendering

    Для Π½Π°Ρ‡Π°Π»Π° Π²Π²Π΅Π΄Ρƒ Ρ‚Π°ΠΊΠΎΠ΅ понятиС ΠΊΠ°ΠΊ Deferred Rendering (Π½Π΅ ΠΏΡƒΡ‚Π°Ρ‚ΡŒ с Deferred Shading , Ρ‚.ΠΊ. послСднСС относится ΠΊ ΠΎΡΠ²Π΅Ρ‰Π΅Π½ΠΈΡŽ). Π’ Ρ‡Π΅ΠΌ ΡΡƒΡ‚ΡŒ Deferred Rendering ? Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ всС эффСкты (Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ освСщСниС, глобальноС Π·Π°Ρ‚Π΅Π½Π΅Π½ΠΈΠ΅, отраТСния, DOF ) ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΎΡ‚ Π³Π΅ΠΎΠΌΠ΅Ρ‚Ρ€ΠΈΠΈ ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ эти эффСкты ΠΊΠ°ΠΊ особый Π²ΠΈΠ΄ постпроцСссинга. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ DOF (Depth Of Field , Ρ€Π°Π·ΠΌΡ‹Ρ‚ΠΈΠ΅ Π½Π° Π΄Π°Π»ΡŒΠ½ΠΈΡ… расстояниях) ΠΊ нашСй сцСнС? Π˜ΠΌΠ΅Ρ‚ΡŒ саму сцСну (Color Map ) ΠΈ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ тСксСля (Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами Π½Π° сколько пиксСль Π΄Π°Π»Π΅ΠΊΠΎ ΠΎΡ‚ ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹). Π”Π°Π»Π΅Π΅ - всС просто. ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΠ΅ΠΌ Blur ΠΊ Color Map , Π³Π΄Π΅ радиус размытия Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π²ΠΈΡΠ΅Ρ‚ΡŒ ΠΎΡ‚ Π³Π»ΡƒΠ±ΠΈΠ½Ρ‹ пиксСля (ΠΈΠ· Depth Map ). И Ссли Π²Π·Π³Π»ΡΠ½ΡƒΡ‚ΡŒ Π½Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ - Ρ‡Π΅ΠΌ дальшС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Ρ‚Π΅ΠΌ сильнСС ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π·ΠΌΡ‹Ρ‚. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΆΠ΅ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠ° Deferred Rendering ? Она строит Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ GBuffer , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ, Π² сСбя Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Ρ‚Ρ€ΠΈ тСкстуры (RenderTarget ):

    Π’ случаС с Color map , Normal map Π²Ρ€ΠΎΠ΄Π΅ всС понятно, это ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ Surface.Color тСкстуры: ΠΏΠΎΠΆΠ°Π»ΡƒΠΉ, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π²Π΅ΠΊΡ‚ΠΎΡ€ Π½ΠΎΡ€ΠΌΠ°Π»ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π»Π΅ΠΆΠ°Ρ‚ΡŒ Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… [-1, 1] (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ простая ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠ° Π²Π΅ΠΊΡ‚ΠΎΡ€Π° Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ).

    А Π²ΠΎΡ‚ ситуация с Depth map становится нСпонятной. Как ΠΆΠ΅ Depth map Ρ…Ρ€Π°Π½ΠΈΡ‚ Π² сСбС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ пиксСля, Π΄Π° Π΅Ρ‰Π΅ ΠΈ ΠΎΠ΄Π½ΠΈΠΌ числом? Если Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ сильно ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½Π½ΠΎ, трансформация ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π°:

    Float4 vertexWVP = mul(vertex, World*View*Projection);

    Π”Π°Π΅Ρ‚ Π½Π°ΠΌ экранныС ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹:

    Float2 UV = vertexWVP.xy;

    И Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ‚ΠΎΠΌ, насколько β€œΠ΄Π°Π»Π΅ΠΊΠΎβ€ ΠΎΡ‚ ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹ пиксСль:

    Float depth = vertexWVP.z / vertexWVP.w;

    Π˜ΡΡ…ΠΎΠ΄Ρ ΠΈΠ· этого UV Π½Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ΅Π½, Ρ‚.ΠΊ. ΠΏΡ€ΠΈ рисовании ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ ΠΊΠ²Π°Π΄Π° Π½Π° вСсь экран ΠΎΠ½ ΠΈ Ρ‚Π°ΠΊ извСстСн. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ стоит Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π² ΠΊΠ°Ρ€Ρ‚Π΅ Π³Π»ΡƒΠ±ΠΈΠ½Ρ‹ Π½Π΅ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ пиксСля, Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π³Π»ΡƒΠ±ΠΈΠ½Ρƒ.

    Π’ дальнСйшСм ΠΌΡ‹ смоТСм Ρ€Π΅ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ пиксСля ΠΎΡ‡Π΅Π½ΡŒ простым способом:

    Float3 GetPosition(float2 UV, float depth) { float4 position = 1.0f; position.x = UV.x * 2.0f - 1.0f; position.y = -(UV.y * 2.0f - 1.0f); position.z = depth; //Transform Position from Homogenous Space to World Space position = mul(position, InverseViewProjection); position /= position.w; return position.xyz; }

    Напомню, Ρ‡Ρ‚ΠΎ для построСния GBuffer Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° такая ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠ° ΠΊΠ°ΠΊ MRT (Multiple Render Targets ), которая рисуСт модСль сразу Π² нСсколько Render Target (ΠΏΡ€ΠΈΡ‡Π΅ΠΌ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ RT содСрТится разная информация). Одно ΠΈΠ· ΠΏΡ€Π°Π²ΠΈΠ» MRT - Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ всСх Render Target Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠΉ . Π’ случаС Color Map , Normal Map - Surface.Color : 32-ΡƒΡ… битная RT , Π³Π΄Π΅ Π½Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠ°Π½Π°Π» ARGB приходится ΠΏΠΎ 8 Π±ΠΈΡ‚, Ρ‚.Π΅. 256 Π³Ρ€Π°Π΄Π°Ρ†ΠΈΠΉ ΠΎΡ‚ 0 Π΄ΠΎ 1.

    Благодаря Ρ‚Π°ΠΊΠΎΠΌΡƒ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρƒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ слоТныС эффСкты ΠΊ любой Π³Π΅ΠΎΠΌΠ΅Ρ‚Ρ€ΠΈΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ самый популярный Screen Space эффСкт: SSAO (Screen Space Ambient Occlusion). Π­Ρ‚ΠΎΡ‚ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ Π±ΡƒΡ„Π΅Ρ€Ρ‹ Π³Π»ΡƒΠ±ΠΈΠ½Ρ‹ ΠΈ Π½ΠΎΡ€ΠΌΠ°Π»ΠΈ, считая ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ затСнСния. Π’Π΅ΡΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ я ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π½Π΅ Π±ΡƒΠ΄Ρƒ, ΠΎΠ½ ΡƒΠΆΠ΅ Π½Π° Ρ…Π°Π±Ρ€Π΅, скаТу лишь Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π·Π°Π΄Π°Ρ‡Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° сводится ΠΊ трассировки ΠΊΠ°Ρ€Ρ‚Ρ‹ Π³Π»ΡƒΠ±ΠΈΠ½Ρ‹: Ρƒ нас Π΅ΡΡ‚ΡŒ Π½Π°Π±ΠΎΡ€ случайных Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠ², Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹Ρ… ΠΈΠ· считаСмого β€œΠΏΠΈΠΊΡΠ΅Π»Ρβ€ ΠΈ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΊΠΎΠ»-Π²ΠΎ пСрСсСчСний с Π³Π΅ΠΎΠΌΠ΅Ρ‚Ρ€ΠΈΠ΅ΠΉ.

    ΠŸΡ€ΠΈΠΌΠ΅Ρ€ эффСкта (слСва Π±Π΅Π· SSAO, справа с SSAO):

    Π’Π°ΠΊ ΠΆΠ΅ Deferred Shading являСтся Screen Space эффСктом. Π’.Π΅. для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ источника свСта Π½Π° экранС (Π±Π΅Π· всяких ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΉ) ΠΌΡ‹ рисуСм ΠΊΠ²Π°Π΄ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Additive Π² Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ RenderTarget : Light Map . И зная ΠΌΠΈΡ€ΠΎΠ²ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ β€œΠΏΠΈΠΊΡΠ΅Π»Ρβ€, Π΅Π³ΠΎ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒ, ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ источника свСта - ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΡΠ²Π΅Ρ‰Π΅Π½Π½ΠΎΡΡ‚ΡŒ этого пиксСля.

    ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Deferred Shading (освСщСниС Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ ΠΎΡ‚Π»ΠΎΠΆΠ΅Π½ΠΎ, послС отрисовки Π³Π΅ΠΎΠΌΠ΅Ρ‚Ρ€ΠΈΠΈ):

    Достоинства ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Screen Space эффСктов
    Π‘Π°ΠΌΡ‹ΠΉ Π³Π»Π°Π²Π½Ρ‹ΠΉ плюс Screen Space эффСктов - Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ слоТности эффСкта ΠΎΡ‚ Π³Π΅ΠΎΠΌΠ΅Ρ‚Ρ€ΠΈΠΈ.

    Π‘Π°ΠΌΡ‹ΠΉ Π³Π»Π°Π²Π½Ρ‹ΠΉ минус - Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ всСх эффСктов. Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ постоянно Π±ΡƒΠ΄Π΅ΠΌ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Ρ‚ΡŒΡΡ с Information Lost , Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… случаях это сильно зависит ΠΎΠ±Π·ΠΎΡ€Π°, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ SSE зависит ΠΎΡ‚ смСТных Π³Π»ΡƒΠ±ΠΈΠ½ тСксСлСй, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ сгСнСрированы любой Π³Π΅ΠΎΠΌΠ΅Ρ‚Ρ€ΠΈΠ΅ΠΉ.

    Ну ΠΈ стоит ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Screen Space эффСкты Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π½Π° GPU ΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ пост-процСссингом.

    НаконСц SSLR

    ПослС всСй Ρ‚Π΅ΠΎΡ€ΠΈΠΈ ΠΌΡ‹ подошли ΠΊ Ρ‚Π°ΠΊΠΎΠΌΡƒ эффСкту, ΠΊΠ°ΠΊ Screen Space Local Reflections : Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ отраТСния Π² экранном пространствС.

    Для Π½Π°Ρ‡Π°Π»Π° разбСрСмся с пСрспСктивной ΠΏΡ€ΠΎΠ΅ΠΊΡ†ΠΈΠ΅ΠΉ:

    Π“ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΡƒΠ³ΠΎΠ» зрСния задаСтся FOV (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ 45 градусов, я ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΡŽ 60 градусов), Π² Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΊΠ°ΠΌΠ΅Ρ€Π΅ ΠΎΠ½ΠΈ Ρ€Π°Π·Π½Ρ‹Π΅ Ρ‚.ΠΊ. учитываСтся Π΅Ρ‰Π΅ ΠΈ Aspect Ratio (ΡΠΎΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ сторон).

    Окно ΠΏΡ€ΠΎΠ΅ΠΊΡ†ΠΈΠΈ (Ρ‚Π°ΠΌ, Π³Π΄Π΅ ΠΌΡ‹ ΠΎΠΏΠ΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌ UV-space Π΄Π°Π½Π½Ρ‹ΠΌΠΈ) - это, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, Π½Π° Ρ‚ΠΎ ΠΌΡ‹ ΠΏΡ€ΠΎΠ΅Ρ†ΠΈΡ€ΡƒΠ΅ΠΌ Π½Π°ΡˆΡƒ сцСну.
    ΠŸΠ΅Ρ€Π΅Π΄Π½ΡΡ ΠΈ задняя плоскости отсСчСния это соотвСтствСнно Near Plane, Far Plane , Π·Π°Π΄Π°ΡŽΡ‚ΡΡ Ρ‚Π°ΠΊ ΠΆΠ΅ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ†ΠΈΡŽ ΠΊΠ°ΠΊ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹. Π”Π΅Π»Π°Ρ‚ΡŒ Π² случаС Deferred Rendering слишком большим Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Far Plane стоит, Ρ‚.ΠΊ. Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ Depth Buffer сильно ΡƒΠΏΠ°Π΄Π΅Ρ‚: всС зависит ΠΎΡ‚ сцСны.

    Π’Π΅ΠΏΠ΅Ρ€ΡŒ, зная ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ ΠΏΡ€ΠΎΠ΅ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ Π½Π° ΠΎΠΊΠ½Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ†ΠΈΠΈ (Π° Ρ‚Π°ΠΊ ΠΆΠ΅ Π³Π»ΡƒΠ±ΠΈΠ½Ρƒ) для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ пиксСля ΠΌΡ‹ вычисляСм Π΅Π³ΠΎ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

    Float3 GetPosition(float2 UV, float depth) { float4 position = 1.0f; position.x = UV.x * 2.0f - 1.0f; position.y = -(UV.y * 2.0f - 1.0f); position.z = depth; position = mul(position, InverseViewProjection); position /= position.w; return position.xyz; }

    ПослС Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π²Π΅ΠΊΡ‚ΠΎΡ€ взгляда Π½Π° этот пиксСль:

    Float3 viewDir = normalize(texelPosition - CameraPosition);
    Π’ качСствС CameraPosition выступаСт позиция ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹.
    И Π½Π°ΠΉΡ‚ΠΈ ΠΎΡ‚Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ этого Π²Π΅ΠΊΡ‚ΠΎΡ€Π° ΠΎΡ‚ Π½ΠΎΡ€ΠΌΠ°Π»ΠΈ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ пиксСлС:

    Float3 reflectDir = normalize(reflect(viewDir, texelNormal));
    Π”Π°Π»Π΅Π΅ Π·Π°Π΄Π°Ρ‡Π° сводится ΠΊ трассировкС ΠΊΠ°Ρ€Ρ‚Ρ‹ Π³Π»ΡƒΠ±ΠΈΠ½Ρ‹. Π’.Π΅. Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ пСрСсСчСниС ΠΎΡ‚Ρ€Π°ΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ Π²Π΅ΠΊΡ‚ΠΎΡ€Π° с ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Π³Π΅ΠΎΠΌΠ΅Ρ‚Ρ€ΠΈΠ΅ΠΉ. ΠŸΠΎΠ½ΡΡ‚Π½ΠΎΠ΅ Π΄Π΅Π»ΠΎ, Ρ‡Ρ‚ΠΎ любая трассировка производится Ρ‡Π΅Ρ€Π΅Π· ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ. И ΠΌΡ‹ Π² Π½ΠΈΡ… сильно ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹. Π’.ΠΊ. каТдая Π²Ρ‹Π±ΠΎΡ€ΠΊΠ° ΠΈΠ· Depth Map стоит Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Π’ ΠΌΠΎΠ΅ΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅ ΠΌΡ‹ Π±Π΅Ρ€Π΅ΠΌ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½ΠΈΠ΅ L ΠΈ динамичСски мСняСм Π΅Π³ΠΎ исходя ΠΈΠ· расстояния ΠΌΠ΅ΠΆΠ΄Ρƒ нашим тСксСлСм ΠΈ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠ΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ β€œΠ²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΠ»ΠΈβ€:

    Float3 currentRay = 0; float3 nuv = 0; float L = LFactor; for(int i = 0; i < 10; i++) { currentRay = texelPosition + reflectDir * L; nuv = GetUV(currentRay); // ΠΏΡ€ΠΎΠ΅Ρ†ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ Π½Π° экран float n = GetDepth(nuv.xy); // Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ Π³Π»ΡƒΠ±ΠΈΠ½Ρ‹ ΠΈΠ· DepthMap ΠΏΠΎ UV float3 newPosition = GetPosition2(nuv.xy, n); L = length(texelPosition - newPosition); }

    Π’ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΌΠΈΡ€ΠΎΠ²ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ Π½Π° экранноС пространство:

    Float3 GetUV(float3 position) { float4 pVP = mul(float4(position, 1.0f), ViewProjection); pVP.xy = float2(0.5f, 0.5f) + float2(0.5f, -0.5f) * pVP.xy / pVP.w; return float3(pVP.xy, pVP.z / pVP.w); }

    ПослС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΉ ΠΌΡ‹ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ β€œΠΏΠ΅Ρ€Π΅ΡΠ΅Ρ‡Π΅Π½ΠΈΡ с ΠΎΡ‚Ρ€Π°ΠΆΠ΅Π½Π½ΠΎΠΉ гСомСтриСй”. А нашС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ nuv Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ†ΠΈΠ΅ΠΉ этого пСрСсСчСния Π½Π° экран, Ρ‚.Π΅. nuv.xy – это UV ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Π² экранном нашСм пространствС, Π° nuv.z это восстановлСнная Π³Π»ΡƒΠ±ΠΈΠ½Π° (Ρ‚.Π΅. abs(GetDepth(nuv.xy)-nuv.z) Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ малСньким) .

    Π’ ΠΊΠΎΠ½Ρ†Π΅ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΉ L Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ расстояниС ΠΎΡ‚Ρ€Π°ΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ пиксСля. ПослСдний этап - собствСнно Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ отраТСния ΠΊ Color Map :

    Float3 cnuv = GetColor(nuv.xy).rgb; return float4(cnuv, 1);

    Π Π°Π·Π±Π°Π²ΠΈΠΌ Ρ‚Π΅ΠΎΡ€ΠΈΡŽ ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΡΠΌΠΈ, исходноС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ (содСрТаниС Color Map ΠΈΠ· GBuffer):

    ПослС компиляции ΡˆΠ΅ΠΉΠ΄Π΅Ρ€Π° (отраТСния) ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρƒ (Color Map ΠΈΠ· GBuffer + Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΡˆΠ΅ΠΉΠ΄Π΅Ρ€Π° SSLR):

    НС густо . И Ρ‚ΡƒΡ‚ стоит Π΅Ρ‰Π΅ Ρ€Π°Π· Π½Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Space-Screen эффСкты это сплошной Information Lost (ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π²Ρ‹Π΄Π΅Π»Π΅Π½Ρ‹ Π² красныС Ρ€Π°ΠΌΠΊΠΈ).

    Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ссли Π²Π΅ΠΊΡ‚ΠΎΡ€ отраТСния Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ Space-Screen – информация ΠΎ Color -ΠΊΠ°Ρ€Ρ‚Π΅ становится нСдоступной ΠΈ ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ Clamping нашСго UV .

    Π§Ρ‚ΠΎΠ±Ρ‹ частично ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, ΠΌΠΎΠΆΠ½ΠΎ ввСсти Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ коэффициСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚Ρ€Π°ΠΆΠ°Ρ‚ΡŒ β€œΠ΄Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒβ€ отраТСния. И Π΄Π°Π»Π΅Π΅ ΠΏΠΎ этому коэффициСнту ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π·Π°Ρ‚Π΅Π½ΡΡ‚ΡŒ ΠΎΡ‚Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° частично Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ:

    L = saturate(L * LDelmiter); float error *= (1 - L);

    Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, ΠΎΡ‚Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½Π½ΠΎΠ΅ Π½Π° error (ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΡƒΠ±Ρ€Π°Ρ‚ΡŒ Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚ SSLR - information lost):

    Π£ΠΆΠ΅ Π»ΡƒΡ‡ΡˆΠ΅, Π½ΠΎ ΠΌΡ‹ Π·Π°ΠΌΠ΅Ρ‡Π°Π΅ΠΌ Π΅Ρ‰Π΅ ΠΎΠ΄Π½Ρƒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚, Ссли Π²Π΅ΠΊΡ‚ΠΎΡ€ отразится Π² Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹? Clamping ’а UV ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚, ΠΎΠ΄Π½Π°ΠΊΠΎ, нСсмотря Π½Π° Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ UV (x > 0, y > 0, x < 1, y < 1) ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅Π²Π΅Ρ€Π½Ρ‹ΠΌ:

    Π­Ρ‚Ρƒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ частично Ρ€Π΅ΡˆΠΈΡ‚ΡŒ, Ссли ΠΊΠ°ΠΊ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ ΡƒΠ³Π»Ρ‹ допустимых ΠΎΡ‚Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. Для этого идСально ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ Ρ„ΠΈΡˆΠΊΠ° с ΡƒΠ³Π»Π°ΠΌΠΈ ΠΎΡ‚ эффСкта ЀрСнСля :

    Float fresnel = dot(viewDir, texelNormal);
    Π§ΡƒΡ‚ΡŒ-Ρ‡ΡƒΡ‚ΡŒ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅ΠΌ Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρƒ:

    Float fresnel = 0.0 + 2.8 * pow(1+dot(viewDir, texelNormal), 2);
    ЗначСния ЀрСнСля, с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ Normal-ΠΌΠ°ΠΏΠΏΠΈΠ½Π³Π° (значСния fresnel-ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ для SSLR-Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°).

    If you"re a developer of 3D games, then you"ve probably come across the terms forward rendering and deferred rendering in your research of modern graphics engines. And, often, you"ll have to choose one to use in your game. But what are they, how do they differ, and which one should you pick?

    Deferred Rendering for many lights (Image courtesy of Hannes Nevalainen)

    Modern Graphics Pipelines

    To begin, we need to understand a little bit about modern, or programmable, graphics pipelines.

    Back in the day, we were limited in what the video card graphics pipeline had. We couldn"t change how it drew each pixel, aside from sending in a different texture, and we couldn"t warp vertices once they were on the card. But times have changed, and we now have programmable graphics pipelines . We can now send code to the video card to change how the pixels look, giving them a bumpy appearance with normal maps , and adding reflection (and a great deal of realism).

    This code is in the form of geometry , vertex , and fragment shaders , and they essentially change how the video card renders your objects.



    Simplified view of a programmable graphics pipeline

    Forward Rendering

    Forward rendering is the standard, out-of-the-box rendering technique that most engines use. You supply the graphics card the geometry, it projects it and breaks it down into vertices, and then those are transformed and split into fragments, or pixels, that get the final rendering treatment before they are passed onto the screen.



    Forward rendering: Geometry shader to vertex shader to fragment Shader

    It is fairly linear, and each geometry is passed down the pipe one at a time to produce the final image.

    Deferred Rendering

    In deferred rendering, as the name implies, the rendering is deferred a little bit until all of the geometries have passed down the pipe; the final image is then produced by applying shading at the end.

    Now, why would we do that?



    Deferred rendering: Geometry to vertex to fragment shaders. Passed to multiple render targets, then shaded with lighting.

    Deferred lighting is a modification of deferred rendering that reduces the size of the G-buffer by using more passes on the scene.

    Lighting Performance

    Lighting is the main reason for going one route versus the other. In a standard forward rendering pipeline, the lighting calculations have to be performed on every vertex and on every fragment in the visible scene, for every light in the scene.

    If you have a scene with 100 geometries, and each geometry has 1,000 vertices, then you might have around 100,000 polygons (a very rough estimate). Video cards can handle this pretty easily. But when those polygons get sent to the fragment shader, that"s where the expensive lighting calculations happen and the real slowdown can occur.

    Developers try to push as many lighting calculations into the Vertex shader as possible to reduce the amount of work that the fragment shader has to do.

    The expensive lighting calculations have to execute for each visible fragment of every polygon on the screen, regardless if it overlaps or is hidden by another polygon"s fragments. If your screen has a resolution of 1024x768 (which is, by all means, not very high-res) you have nearly 800,000 pixels that need to be rendered. You could easily reach a million fragment operations every frame. Also, many of the fragments will never make it to the screen because they were removed with depth testing, and thus the lighting calculation was wasted on them.

    If you have a million of those fragments and suddenly you have to render that scene again for each light, you have jumped to x 1,000,000 fragment operations per frame! Imagine if you had a town full of street lights where each one is a point-light source...

    The formula for estimating this forward rendering complexity can be written, in big O notation , as O(num_geometry_fragments * num_lights) . You can see here that the complexity is directly related to the number of geometries and number of lights.

    Fragments are potential pixels that will end up on the screen if they do not get culled by the depth test.

    Now, some engines optimize this, by cutting out lights that are far away, combining lights, or using light maps (very popular, but static). But if you want dynamic lights and a lot of them, we need a better solution.

    Deferred Rendering to the Rescue

    Deferred Rendering is a very interesting approach that reduces the object count, and in particular the total fragment count, and performs the lighting calculations on the pixels on the screen, thereby using the resolution size instead of the total fragment count.

    The complexity of deferred rendering, in big O notation, is: O(screen_resolution * num_lights) .

    You can see that it now doesn"t matter how many objects you have on the screen that determines how many lights you use, so you can happily increase your lighting count. (This doesn"t mean you can have unlimited objects-they still have to be drawn to the buffers to produce the final rendering result.)

    Let"s see how it works.

    The Guts of Deferred Rendering

    Every geometry is rendered, but without light shading, to several screen space buffers using multiple render targets . In particular, the depth, the normals, and the color are all written to separate buffers (images). These buffers are then combined to provide enough information for each light to light the pixels.



    Color , Depth , and Normal buffers. (Images by astrofa, via Wikimedia Commons.)

    Final lighting (shading) result generated using the three buffers. (Image by astrofa , via Wikimedia Commons.)

    By knowing how far away a pixel is, and its normal vector, we can combine the color of that pixel with the light to produce our final render.

    Which to Pick?

    The short answer is, if you are using many dynamic lights then you should use deferred rendering. However, there are some significant drawbacks:

    • This process requires a video card with multiple render targets. Old video cards don"t have this, so it won"t work on them. There is no workaround for this.
    • It requires high bandwidth. You"re sending big buffers around and old video cards, again, might not be able to handle this. There is no workaround for this, either.
    • You can"t use transparent objects. (Unless you combine deferred rendering with Forward Rendering for just those transparent objects; then you can work around this issue.)
    • There"s no anti-aliasing. Well, some engines would have you believe that, but there are solutions to this problem: edge detection , FXAA .
    • Only one type of material is allowed, unless you use a modification of deferred rendering called Deferred Lighting .
    • Shadows are still dependent on the number of lights, and deferred rendering does not solve anything here.

    If you don"t have many lights or want to be able to run on older hardware, then you should stick with forward rendering and replace your many lights with static light maps. The results can still look amazing.

    Conclusion

    I hope that has shed some light on the subject. Your options are there to solve your rendering problems, but it is very important to choose the right one at the start of your game development to avoid difficult changes later on.

    02ΠžΠΊΡ‚

    Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π Π΅Π½Π΄Π΅Ρ€ (Π Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³)

    Π Π΅Π½Π΄Π΅Ρ€ (Π Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³) β€” это процСсс создания Ρ„ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ изобраТСния ΠΈΠ»ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈΠ· ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π½Π° основС Π΄Π²ΡƒΡ…ΠΌΠ΅Ρ€Π½Ρ‹Ρ… ΠΈΠ»ΠΈ Ρ‚Ρ€Π΅Ρ…ΠΌΠ΅Ρ€Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…. Π”Π°Π½Π½Ρ‹ΠΉ процСсс происходит с использованиСм ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈ Π·Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ сопровоТдаСтся Ρ‚Ρ€ΡƒΠ΄Π½Ρ‹ΠΌΠΈ тСхничСскими вычислСниями, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ лоТатся Π½Π° Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ мощности ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° ΠΈΠ»ΠΈ Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Π΅Π³ΠΎ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚ΡƒΡŽΡ‰ΠΈΠ΅ части.

    ΠŸΡ€ΠΎΡ†Π΅ΡΡ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° Ρ‚Π°ΠΊ ΠΈΠ»ΠΈ ΠΈΠ½Π°Ρ‡Π΅ присутствуСт Π² Ρ€Π°Π·Π½Ρ‹Ρ… сфСрах ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΉ Π΄Π΅ΡΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Π±ΡƒΠ΄ΡŒ Ρ‚ΠΎ киноиндустрия, индустрия Π²ΠΈΠ΄Π΅ΠΎΠΈΠ³Ρ€ ΠΈΠ»ΠΈ ΠΆΠ΅ Π²ΠΈΠ΄Π΅ΠΎΠ±Π»ΠΎΠ³ΠΈΠ½Π³. Π—Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ, Ρ€Π΅Π½Π΄Π΅Ρ€ являСтся послСдним ΠΈΠ»ΠΈ прСдпослСдним этапом Π² Ρ€Π°Π±ΠΎΡ‚Π΅ Π½Π°Π΄ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ, послС Ρ‡Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Π° считаСтся Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎΠΉ ΠΈΠ»ΠΈ ΠΆΠ΅ нуТдаСтся Π² нСбольшой постобработкС. Π’Π°ΠΊΠΆΠ΅ стоит ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π½Π΅Ρ€Π΅Π΄ΠΊΠΎ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΎΠΌ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Π½Π΅ сам процСсс Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π°, Π° скорСС ΡƒΠΆΠ΅ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π½Ρ‹ΠΉ этап Π΄Π°Π½Π½ΠΎΠ³ΠΎ процСсса ΠΈΠ»ΠΈ Π΅Π³ΠΎ ΠΈΡ‚ΠΎΠ³ΠΎΠ²Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.

    слова Β«Π Π΅Π½Π΄Π΅Ρ€Β».

    Π‘Π»ΠΎΠ²ΠΎ Π Π΅Π½Π΄Π΅Ρ€ (Π Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³) β€” это Π°Π½Π³Π»ΠΈΡ†ΠΈΠ·ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ пСрСводится Π½Π° русский язык словом β€œΠ’ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ ”.

    Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³ Π² 3D?

    Π§Π°Ρ‰Π΅ всСго, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ Ρ€Π΅Π½Π΄Π΅Ρ€Π΅, Ρ‚ΠΎ ΠΈΠΌΠ΅Π΅ΠΌ Π² Π²ΠΈΠ΄Ρƒ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³ Π² 3D Π³Ρ€Π°Ρ„ΠΈΠΊΠ΅. Π‘Ρ€Π°Π·Ρƒ стоит ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π½Π° самом Π΄Π΅Π»Π΅ Π² 3D Ρ€Π΅Π½Π΄Π΅Ρ€Π΅ Π½Π΅Ρ‚Ρƒ Ρ‚Ρ€Π΅Ρ… ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ ΠΊΠ°ΠΊ Ρ‚Π°ΠΊΠΎΠ²Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Π·Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ ΠΌΠΎΠΆΠ΅ΠΌ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π² ΠΊΠΈΠ½ΠΎΡ‚Π΅Π°Ρ‚Ρ€Π΅ Π½Π°Π΄Π΅Π² ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΎΡ‡ΠΊΠΈ. ΠŸΡ€ΠΈΡΡ‚Π°Π²ΠΊΠ° β€œ3D” Π² Π½Π°Π·Π²Π°Π½ΠΈΠ΅ скорСС Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ Π½Π°ΠΌ ΠΎ способС созданиС Ρ€Π΅Π½Π΄Π΅Ρ€Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ 3-Ρ… ΠΌΠ΅Ρ€Π½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, созданныС Π² ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… для 3D модСлирования. ΠŸΡ€ΠΎΡ‰Π΅ говоря, Π² ΠΈΡ‚ΠΎΠ³Π΅ ΠΌΡ‹ всС Ρ€Π°Π²Π½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ 2D ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΈΡ… ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ (Π²ΠΈΠ΄Π΅ΠΎ) ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ создавались (Ρ€Π΅Π½Π΄Π΅Ρ€Π΅Π»ΠΈΡΡŒ) Π½Π° основС 3-Ρ… ΠΌΠ΅Ρ€Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈΠ»ΠΈ сцСны.

    Π Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³ β€” это ΠΎΠ΄ΠΈΠ½ ΠΈΠ· самых слоТных Π² тСхничСском ΠΏΠ»Π°Π½Π΅ этапов Π² Ρ€Π°Π±ΠΎΡ‚Π΅ с 3D Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠΉ. Π§Ρ‚ΠΎΠ± ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ эту ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ простым языком, ΠΌΠΎΠΆΠ½ΠΎ привСсти аналогию с Ρ€Π°Π±ΠΎΡ‚Π°ΠΌΠΈ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΎΠ². Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ± фотография прСдстала Π²ΠΎ всСй красС, Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„Ρƒ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΉΡ‚ΠΈ Ρ‡Π΅Ρ€Π΅Π· Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ тСхничСскиС этапы, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, проявлСниС ΠΏΠ»Π΅Π½ΠΊΠΈ ΠΈΠ»ΠΈ ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ Π½Π° ΠΏΡ€ΠΈΠ½Ρ‚Π΅Ρ€Π΅. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΆΠ΅ тСхничСскими этапами ΠΈ ΠΎΠ±Ρ€Π΅ΠΌΠ΅Π½Π΅Π½Ρ‹ 3d Ρ…ΡƒΠ΄ΠΎΠΆΠ½ΠΈΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ для создания ΠΈΡ‚ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ изобраТСния проходят этап настройки Ρ€Π΅Π½Π΄Π΅Ρ€Π° ΠΈ сам процСсс Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π°.

    ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ изобраТСния.

    Как ΡƒΠΆΠ΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΎΡΡŒ Ρ€Π°Π½Π΅Π΅, Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³ β€” это ΠΎΠ΄ΠΈΠ½ ΠΈΠ· самых слоТных тСхничСских этапов, вСдь Π²ΠΎ врСмя Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° ΠΈΠ΄ΡƒΡ‚ слоТныС матСматичСскиС вычислСния, выполняСмыС Π΄Π²ΠΈΠΆΠΊΠΎΠΌ Ρ€Π΅Π½Π΄Π΅Ρ€Π°. На этом этапС, Π΄Π²ΠΈΠΆΠΎΠΊ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ матСматичСскиС Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ сцСнС Π² Ρ„ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ 2D-ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅. Π’ΠΎ врСмя процСсса ΠΈΠ΄Π΅Ρ‚ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ 3d-Π³Π΅ΠΎΠΌΠ΅Ρ‚Ρ€ΠΈΠΈ, тСкстур ΠΈ свСтовых Π΄Π°Π½Π½Ρ‹Ρ… сцСны Π² ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ†Π²Π΅Ρ‚ΠΎΠ²ΠΎΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ пиксСля Π² 2D ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅. Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, Π΄Π²ΠΈΠΆΠΎΠΊ Π½Π° основС ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ…ΡΡ Ρƒ Π½Π΅Π³ΠΎ Π΄Π°Π½Π½Ρ‹Ρ…, просчитываСт Ρ‚ΠΎ, ΠΊΠ°ΠΊΠΈΠΌ Ρ†Π²Π΅Ρ‚ΠΎΠΌ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΊΡ€Π°ΡˆΠ΅Π½ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ пиксСль изобраТСния для получСния комплСксной, красивой ΠΈ Π·Π°ΠΊΠΎΠ½Ρ‡Π΅Π½Π½ΠΎΠΉ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ.

    ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π°:

    Π’ глобальном ΠΏΠ»Π°Π½Π΅, Π΅ΡΡ‚ΡŒ Π΄Π²Π° основных Ρ‚ΠΈΠΏΠ° Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π°, Π³Π»Π°Π²Π½Ρ‹ΠΌΠΈ отличиями ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… являСтся ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ просчитываСтся ΠΈ финализируСтся ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Π° Ρ‚Π°ΠΊΠΆΠ΅ качСство ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ.

    Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ?

    Π Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π·Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΉ ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ Π³Ρ€Π°Ρ„ΠΈΠΊΠ΅, Π³Π΄Π΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒΡΡ с максимально большой ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅ Π½Π° дисплСй ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎ.

    ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠΌ Π² Ρ‚Π°ΠΊΠΎΠΌ Ρ‚ΠΈΠΏΠ΅ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° Π΅ΡΡ‚ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ со стороны ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Ρ‚ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ приходится ΠΏΡ€ΠΎΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ Π±Π΅Π· Π·Π°Π΄Π΅Ρ€ΠΆΠ΅ΠΊ ΠΈ практичСски Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Ρ‚ΠΎΡ‡Π½ΠΎ ΠΏΡ€Π΅Π΄ΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΈΠ³Ρ€ΠΎΠΊΠ° ΠΈ Ρ‚ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΉ ΠΈΠ»ΠΈ с ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ сцСной. Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ± интСрактивная сцСна ΠΈΠ»ΠΈ ΠΈΠ³Ρ€Π° Ρ€Π°Π±ΠΎΡ‚Π°Π»Π° ΠΏΠ»Π°Π²Π½ΠΎ Π±Π΅Π· Ρ€Ρ‹Π²ΠΊΠΎΠ² ΠΈ ΠΌΠ΅Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, 3D Π΄Π²ΠΈΠΆΠΊΡƒ приходится Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΡ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ со ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ 20-25 ΠΊΠ°Π΄Ρ€ΠΎΠ² Π² сСкунду. Если ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Ρ€Π΅Π½Π΄Π΅Ρ€Π° Π±ΡƒΠ΄Π΅Ρ‚ Π½ΠΈΠΆΠ΅ 20 ΠΊΠ°Π΄Ρ€ΠΎΠ², Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ дискомфорт ΠΎΡ‚ сцСны наблюдая Ρ€Ρ‹Π²ΠΊΠΈ ΠΈ Π·Π°ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹Π΅ двиТСния.

    Π‘ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ€ΠΎΠ»ΡŒ Π² созданиС ΠΏΠ»Π°Π²Π½ΠΎΠ³ΠΎ Ρ€Π΅Π½Π΄Π΅Ρ€Π° Π² ΠΈΠ³Ρ€Π°Ρ… ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… сцСнах ΠΈΠ³Ρ€Π°Π΅Ρ‚ процСсс ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ. Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ± Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠΉ скорости Ρ€Π΅Π½Π΄Π΅Ρ€Π°, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ Ρ€Π°Π·Π½Ρ‹Π΅ ΡƒΠ»ΠΎΠ²ΠΊΠΈ для сниТСния Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π½Π° Ρ€Π΅Π½Π΄Π΅Ρ€ Π΄Π²ΠΈΠΆΠΎΠΊ, ΠΏΡ‹Ρ‚Π°ΡΡΡŒ ΡΠ½ΠΈΠ·ΠΈΡ‚ΡŒ Π²Ρ‹Π½ΡƒΠΆΠ΄Π΅Π½Π½ΠΎΠ΅ количСство просчСтов. Бюда Π²Ρ…ΠΎΠ΄ΠΈΡ‚ сниТСниС качСства 3Π΄ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΈ тСкстур, Π° Ρ‚Π°ΠΊΠΆΠ΅ запись Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ свСтовой ΠΈ Ρ€Π΅Π»ΡŒΠ΅Ρ„Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π² Π·Π°Ρ€Π°Π½Π΅Π΅ Π·Π°ΠΏΠ΅Ρ‡Π΅Π½Π½Ρ‹Π΅ тСкстурныС ΠΊΠ°Ρ€Ρ‚Ρ‹. Π’Π°ΠΊΠΆΠ΅ стоит ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ основная Ρ‡Π°ΡΡ‚ΡŒ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΏΡ€ΠΈ просчСтС Ρ€Π΅Π½Π΄Π΅Ρ€Π° Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π»ΠΎΠΆΠΈΡ‚ΡŒΡΡ Π½Π° спСциализированноС графичСскоС ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ (Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°Ρ€Ρ‚Ρƒ -GPU), Ρ‡Ρ‚ΠΎ позволяСт ΡΠ½ΠΈΠ·ΠΈΡ‚ΡŒ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ с Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ процСссора (ЦП) ΠΈ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ мощности для Π΄Ρ€ΡƒΠ³ΠΈΡ… Π·Π°Π΄Π°Ρ‡.

    Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅Π½Π΄Π΅Ρ€?

    К ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌΡƒ Ρ€Π΅Π½Π΄Π΅Ρ€Ρƒ ΠΏΡ€ΠΈΠ±Π΅Π³Π°ΡŽΡ‚ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Π½Π΅ стоит Π² ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π΅, ΠΈ Π½ΡƒΠΆΠ΄Ρ‹ Π² интСрактивности Π½Π΅Ρ‚. Π”Π°Π½Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ Ρ€Π΅Π½Π΄Π΅Ρ€Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‡Π°Ρ‰Π΅ всСго Π² киноиндустрии, Π² Ρ€Π°Π±ΠΎΡ‚Π΅ с Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΈ слоТными Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ эффСктами, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ‚Π°ΠΌ, Π³Π΄Π΅ Π½ΡƒΠΆΠ΅Π½ Ρ„ΠΎΡ‚ΠΎΡ€Π΅Π°Π»ΠΈΠ·ΠΌ ΠΈ ΠΎΡ‡Π΅Π½ΡŒ высокоС качСство ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ.

    Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π Π΅Π½Π΄Π΅Ρ€Π° Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Π³Π΄Π΅ основная Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»Π°ΡΡŒ Π½Π° графичСскиС ΠΊΠ°Ρ€Ρ‚Ρ‹(GPU) Π’ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌ Ρ€Π΅Π½Π΄Π΅Ρ€Π΅ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ° лоТится Π½Π° Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΉ процСссор(ЦП) Π° ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Ρ€Π΅Π½Π΄Π΅Ρ€Π° зависит ΠΎΡ‚ количСства ядСр, многопоточности ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ процСссора.

    НСрСдко Π±Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ врСмя Ρ€Π΅Π½Π΄Π΅Ρ€Π° ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠ°Π΄Ρ€Π° Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ нСсколько часов ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ нСсколько Π΄Π½Π΅ΠΉ. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаи 3D Ρ…ΡƒΠ΄ΠΎΠΆΠ½ΠΈΠΊΠ°ΠΌ практичСски Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ±Π΅Π³Π°Ρ‚ΡŒ ΠΊ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΈ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ 3D ΠΌΠΎΠ΄Π΅Π»ΠΈ Π²Ρ‹ΡΠΎΡ‡Π°ΠΉΡˆΠ΅Π³ΠΎ качСства, Π° Ρ‚Π°ΠΊΠΆΠ΅ тСкстурныС ΠΊΠ°Ρ€Ρ‚Ρ‹ с ΠΎΡ‡Π΅Π½ΡŒ большим Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ. Π’ ΠΈΡ‚ΠΎΠ³Π΅, ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° получаСтся Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ ΠΈ Ρ„ΠΎΡ‚ΠΎ-рСалистичнСй ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Ρ€Π΅Π½Π΄Π΅Ρ€ΠΎΠΌ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

    ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π°.

    БСйчас, Π½Π° Ρ€Ρ‹Π½ΠΊΠ΅ присутствуСт большоС количСство Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³ Π΄Π²ΠΈΠΆΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ собой ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ, качСством ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ ΠΈ простотой использования.

    Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Ρ€Π΅Π½Π΄Π΅Ρ€ Π΄Π²ΠΈΠΆΠΊΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ встроСнными Π² ΠΊΡ€ΡƒΠΏΠ½Ρ‹Π΅ 3D ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠΉ ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹ΠΉ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π». Π‘Ρ€Π΅Π΄ΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ популярных 3D ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ (ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²) Π΅ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ софт ΠΊΠ°ΠΊ:

    • 3ds Max;
    • Maya;
    • Blender;
    • Cinema 4d ΠΈ Π΄Ρ€.

    МногиС ΠΈΠ· этих 3D ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΈΠΌΠ΅ΡŽΡ‚ ΡƒΠΆΠ΅ ΠΈΠ΄ΡƒΡ‰ΠΈΠ΅ Π² ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚Π΅ Ρ€Π΅Π½Π΄Π΅Ρ€ Π΄Π²ΠΈΠΆΠΊΠΈ. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, Ρ€Π΅Π½Π΄Π΅Ρ€-Π΄Π²ΠΈΠΆΠΎΠΊ Mental Ray присутствуСт Π² ΠΏΠ°ΠΊΠ΅Ρ‚Π΅ 3Ds Max. Π’Π°ΠΊΠΆΠ΅, практичСски любой популярный Ρ€Π΅Π½Π΄Π΅Ρ€-Π΄Π²ΠΈΠΆΠΎΠΊ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΊ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Ρƒ извСстных 3d ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ². Π‘Ρ€Π΅Π΄ΠΈ популярных Ρ€Π΅Π½Π΄Π΅Ρ€ Π΄Π²ΠΈΠΆΠΊΠΎΠ² Π΅ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ:

    • V-ray;
    • Mental ray;
    • Corona renderer ΠΈ Π΄Ρ€.

    Π₯ΠΎΡ‚Π΅Π»ΠΎΡΡŒ Π±Ρ‹ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ…ΠΎΡ‚ΡŒ ΠΈ процСсс Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ слоТныС матСматичСскиС просчСты, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ для 3D-Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° всячСски ΠΏΡ‹Ρ‚Π°ΡŽΡ‚ΡΡ ΠΈΠ·Π±Π°Π²ΠΈΡ‚ΡŒ 3D-Ρ…ΡƒΠ΄ΠΎΠΆΠ½ΠΈΠΊΠΎΠ² ΠΎΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ со слоТной ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΎΠΉ Π»Π΅ΠΆΠ°Ρ‰Π΅ΠΉ Π² основС Ρ€Π΅Π½Π΄Π΅Ρ€-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Они ΠΏΡ‹Ρ‚Π°ΡŽΡ‚ΡΡ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ условно-простыС для понимания парамСтричСскиС настройки Ρ€Π΅Π½Π΄Π΅Ρ€Π°, Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΈ ΠΎΡΠ²Π΅Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π½Π°Π±ΠΎΡ€Ρ‹ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ.

    МногиС Ρ€Π΅Π½Π΄Π΅Ρ€-Π΄Π²ΠΈΠΆΠΊΠΈ сыскали славу Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… сфСрах Ρ€Π°Π±ΠΎΡ‚Ρ‹ с 3Π΄ Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠΉ. Π’Π°ΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, β€œV-ray” ΠΈΠΌΠ΅Π΅Ρ‚ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ Ρƒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½Ρ‹Ρ… Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΎΠ², ΠΈΠ·-Π·Π° наличия большого количСства ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠ² для Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½ΠΎΠΉ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ Π² Ρ†Π΅Π»ΠΎΠΌ, Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π³ΠΎ качСства Ρ€Π΅Π½Π΄Π΅Ρ€Π°.

    ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.

    Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Ρ€Π΅Π½Π΄Π΅Ρ€ Π΄Π²ΠΈΠΆΠΊΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ‚Ρ€ΠΈ основных ΠΌΠ΅Ρ‚ΠΎΠ΄Π° вычислСния. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Π½ΠΈΡ… ΠΈΠΌΠ΅Π΅Ρ‚ ΠΊΠ°ΠΊ свои прСимущСства, Ρ‚Π°ΠΊ ΠΈ нСдостатки, Π½ΠΎ всС Ρ‚Ρ€ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΈΠΌΠ΅ΡŽΡ‚ ΠΏΡ€Π°Π²ΠΎ Π½Π° своё ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ситуациях.

    1. Scanline (сканлайн).

    Π‘ΠΊΠ°Π½Π»Π°ΠΉΠ½ Ρ€Π΅Π½Π΄Π΅Ρ€ β€” Π²Ρ‹Π±ΠΎΡ€ Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ отдаст скорости, Π° Π½Π΅ качСству. ИмСнно Π·Π° счСт своСй скорости, Π΄Π°Π½Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ Ρ€Π΅Π½Π΄Π΅Ρ€Π° Π·Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Π²ΠΈΠ΄Π΅ΠΎΠΈΠ³Ρ€Π°Ρ… ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… сцСнах, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΎ Π²ΡŒΡŽΠΏΠΎΡ€Ρ‚Π°Ρ… Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… 3D ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ². ΠŸΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ соврСмСнного Π²ΠΈΠ΄Π΅ΠΎΠ°Π΄Π°ΠΏΡ‚Π΅Ρ€Π°, Π΄Π°Π½Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ Ρ€Π΅Π½Π΄Π΅Ρ€Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π΄Π°Π²Π°Ρ‚ΡŒ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΡƒΡŽ ΠΈ ΠΏΠ»Π°Π²Π½ΡƒΡŽ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ с частотой ΠΎΡ‚ 30 ΠΊΠ°Π΄Ρ€ΠΎΠ² Π² сСкунду ΠΈ Π²Ρ‹ΡˆΠ΅.

    Алгоритм Ρ€Π°Π±ΠΎΡ‚Ρ‹:

    ВмСсто Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° «пиксСля ΠΏΠΎ пиксСлю», Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ функционирования Β«scanlineΒ» Ρ€Π΅Π½Π΄Π΅Ρ€Π° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ опрСдСляСт Π²ΠΈΠ΄ΠΈΠΌΡƒΡŽ ΠΏΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΡŒ Π² 3D Π³Ρ€Π°Ρ„ΠΈΠΊΠ΅, ΠΈ работая ΠΏΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ «ряд Π·Π° рядом», спСрва сортируСт Π½ΡƒΠΆΠ½Ρ‹Π΅ для Ρ€Π΅Π½Π΄Π΅Ρ€Π° ΠΏΠΎΠ»ΠΈΠ³ΠΎΠ½Ρ‹ ΠΏΠΎ Π²Ρ‹ΡΡˆΠ΅ΠΉ Y ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ Π΄Π°Π½Π½ΠΎΠΌΡƒ ΠΏΠΎΠ»ΠΈΠ³ΠΎΠ½Ρƒ, послС Ρ‡Π΅Π³ΠΎ, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ряд изобраТСния просчитываСтся Π·Π° счСт пСрСсСчСния ряда с ΠΏΠΎΠ»ΠΈΠ³ΠΎΠ½ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся блиТайшим ΠΊ ΠΊΠ°ΠΌΠ΅Ρ€Π΅. ΠŸΠΎΠ»ΠΈΠ³ΠΎΠ½Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ большС Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΌΠΈ, ΡƒΠ΄Π°Π»ΡΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ряда ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ.

    ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²ΠΎ Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ отсутствуСт Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π²Π΅Ρ€ΡˆΠΈΠ½Π΅ с основной памяти Π² Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ, Π° Ρ‚Ρ€Π°Π½ΡΠ»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅Ρ… Π²Π΅Ρ€ΡˆΠΈΠ½, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΏΠ°Π΄Π°ΡŽΡ‚ Π² Π·ΠΎΠ½Ρƒ видимости ΠΈ просчСта.

    2. Raytrace (рСйтрСйс).

    Π­Ρ‚ΠΎΡ‚ Ρ‚ΠΈΠΏ Ρ€Π΅Π½Π΄Π΅Ρ€Π° создан для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ Ρ…ΠΎΡ‡Π΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ с максимально качСствСнной ΠΈ Π΄Π΅Ρ‚Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ прорисовкой. Π Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³ ΠΈΠΌΠ΅Π½Π½ΠΎ этого Ρ‚ΠΈΠΏΠ°, ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ Ρƒ Π»ΡŽΠ±ΠΈΡ‚Π΅Π»Π΅ΠΉ Ρ„ΠΎΡ‚ΠΎΡ€Π΅Π°Π»ΠΈΠ·ΠΌΠ°, ΠΈ стоит ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ Π½Π΅ спроста. Π”ΠΎΠ²ΠΎΠ»ΡŒΠ½ΠΎ часто с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ рСйтрСйс-Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΏΠΎΡ‚Ρ€ΡΡΠ°ΡŽΡ‰Π΅ рСалистичныС ΠΊΠ°Π΄Ρ€Ρ‹ ΠΏΡ€ΠΈΡ€ΠΎΠ΄Ρ‹ ΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΡ‚ΡŒ ΠΎΡ‚ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ удастся Π½Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ, ΠΊ Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅, Π½Π΅Ρ€Π΅Π΄ΠΊΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ рСйтрСйс ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π² Ρ€Π°Π±ΠΎΡ‚Π΅ Π½Π°Π΄ Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ² Π² CG Ρ‚Ρ€Π΅ΠΉΠ»Π΅Ρ€Π°Ρ… ΠΈΠ»ΠΈ ΠΊΠΈΠ½ΠΎ.

    К соТалСнию, Π² ΡƒΠ³ΠΎΠ΄Ρƒ качСству, Π΄Π°Π½Π½Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° являСтся ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ΅Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΈ ΠΏΠΎΠΊΠ° Ρ‡Ρ‚ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² Ρ€ΠΈΠ°Π»-Ρ‚Π°ΠΉΠΌ Π³Ρ€Π°Ρ„ΠΈΠΊΠ΅.

    Алгоритм Ρ€Π°Π±ΠΎΡ‚Ρ‹:

    ИдСя Raytrace Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ пиксСля Π½Π° условном экранС, ΠΎΡ‚ ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹ прослСТиваСтся ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ нСсколько Π»ΡƒΡ‡Π΅ΠΉ Π΄ΠΎ блиТайшСго Ρ‚Ρ€Π΅Ρ…ΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Π—Π°Ρ‚Π΅ΠΌ Π»ΡƒΡ‡ свСта ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ количСство отскоков, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ отраТСния ΠΈΠ»ΠΈ прСломлСния Π² зависимости ΠΎΡ‚ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠ² сцСны. Π¦Π²Π΅Ρ‚ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ пиксСля вычисляСтся алгоритмичСски Π½Π° основС взаимодСйствия свСтового Π»ΡƒΡ‡Π° с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ Π² Π΅Π³ΠΎ трассируСмом ΠΏΡƒΡ‚ΠΈ.

    ΠœΠ΅Ρ‚ΠΎΠ΄ Raycasting.

    Алгоритм Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° основС «бросания» Π»ΡƒΡ‡Π΅ΠΉ ΠΊΠ°ΠΊ Π±ΡƒΠ΄Ρ‚ΠΎ с Π³Π»Π°Π· Π½Π°Π±Π»ΡŽΠ΄Π°Ρ‚Π΅Π»Ρ, сквозь ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ пиксСль экрана ΠΈ нахоТдСния блиТайшСго ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€Π΅Π³Ρ€Π°ΠΆΠ΄Π°Π΅Ρ‚ ΠΏΡƒΡ‚ΡŒ Ρ‚Π°ΠΊΠΎΠ³ΠΎ Π»ΡƒΡ‡Π°. Использовав свойства ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Π΅Π³ΠΎ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π° ΠΈ освСщСния сцСны, ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ΠΉ Ρ†Π²Π΅Ρ‚ пиксСля.

    НСрСдко Π±Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Β«ΠΌΠ΅Ρ‚ΠΎΠ΄ трассировки Π»ΡƒΡ‡Π΅ΠΉΒ» (raytrace) ΠΏΡƒΡ‚Π°ΡŽΡ‚ с ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ «бросания Π»ΡƒΡ‡Π΅ΠΉΒ» (raycasting). Но Π½Π° самом Π΄Π΅Π»Π΅, Β«raycastingΒ» (ΠΌΠ΅Ρ‚ΠΎΠ΄ бросания Π»ΡƒΡ‡Π°) фактичСски являСтся ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½Π½Ρ‹ΠΌ Β«raytraceΒ» ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ отсутствуСт дальнСйшая ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΎΡ‚Π±ΠΈΠ²ΡˆΠΈΡ…ΡΡ ΠΈΠ»ΠΈ Π·Π°Π»ΠΎΠΌΠ»Π΅Π½Π½Ρ‹Ρ… Π»ΡƒΡ‡Π΅ΠΉ, Π° просчитываСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ пСрвая ΠΏΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΡŒ Π½Π° ΠΏΡƒΡ‚ΠΈ Π»ΡƒΡ‡Π°.

    3. Radiosity.

    ВмСсто Β«ΠΌΠ΅Ρ‚ΠΎΠ΄Π° трассировки Π»ΡƒΡ‡Π΅ΠΉΒ», Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ просчСт Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ нСзависимо ΠΎΡ‚ ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹ ΠΈ являСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° «пиксСль ΠΏΠΎ пиксСлю». Основная функция β€œradiosity” Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΡ‡Π½ΠΎ ΠΈΠΌΠΈΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ†Π²Π΅Ρ‚ повСрхности ΠΏΡƒΡ‚Π΅ΠΌ ΡƒΡ‡Π΅Ρ‚Π° нСпрямого освСщСния (отскок рассСянного свСта).

    ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π°ΠΌΠΈ Β«radiosityΒ» ΡΠ²Π»ΡΡŽΡ‚ΡΡ мягкиС Π³Ρ€Π°Π΄ΡƒΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Ρ‚Π΅Π½ΠΈ ΠΈ Ρ†Π²Π΅Ρ‚ΠΎΠ²Ρ‹Π΅ отраТСния Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅, ΠΈΠ΄ΡƒΡ‰ΠΈΠ΅ ΠΎΡ‚ сосСдних ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² с ярким окрасом.

    Достаточно популярна ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° использования ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Radiosity ΠΈ Raytrace вмСстС для достиТСния максимально Π²ΠΏΠ΅Ρ‡Π°Ρ‚Π»ΡΡŽΡ‰ΠΈΡ… ΠΈ фоторСалистичных Ρ€Π΅Π½Π΄Π΅Ρ€ΠΎΠ².

    Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³ Π²ΠΈΠ΄Π΅ΠΎ?

    Иногда, Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Β«Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΡ‚ΡŒΒ» ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠΉ 3D Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠΉ, Π½ΠΎ ΠΈ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π²ΠΈΠ΄Π΅ΠΎΡ„Π°ΠΉΠ»Π°ΠΌΠΈ. ΠŸΡ€ΠΎΡ†Π΅ΡΡ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° Π²ΠΈΠ΄Π΅ΠΎ начинаСтся Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²ΠΈΠ΄Π΅ΠΎΡ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠ» Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π°Π΄ Π²ΠΈΠ΄Π΅ΠΎΡ„Π°ΠΉΠ»ΠΎΠΌ, выставил всС Π½ΡƒΠΆΠ½Ρ‹Π΅ Π΅ΠΌΡƒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, Π·Π²ΡƒΠΊΠΎΠ²Ρ‹Π΅ Π΄ΠΎΡ€ΠΎΠΆΠΊΠΈ ΠΈ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ эффСкты. По сути, всС Ρ‡Ρ‚ΠΎ ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ, это ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ всС ΠΏΡ€ΠΎΠ΄Π΅Π»Π°Π½Π½ΠΎΠ΅ Π² ΠΎΠ΄ΠΈΠ½ Π²ΠΈΠ΄Π΅ΠΎΡ„Π°ΠΉΠ». Π­Ρ‚ΠΎΡ‚ процСсс ΠΌΠΎΠΆΠ½ΠΎ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ с Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ программиста, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ написал ΠΊΠΎΠ΄, послС Ρ‡Π΅Π³ΠΎ всС Ρ‡Ρ‚ΠΎ ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ, это ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ вСсь ΠΊΠΎΠ΄ Π² Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ.

    Как ΠΈ Ρƒ 3D Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π°, Ρ‚Π°ΠΊ ΠΈ Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π²ΠΈΠ΄Π΅ΠΎΡ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°, процСсс Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° ΠΈΠ΄Π΅Ρ‚ автоматичСски ΠΈ Π±Π΅Π· участия ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. ВсС Ρ‡Ρ‚ΠΎ трСбуСтся, это Π·Π°Π΄Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄ стартом.

    Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° Π²ΠΈΠ΄Π΅ΠΎ зависит ΠΎΡ‚ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ качСства, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ трСбуСтся Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π΅. Π’ основном, большая Ρ‡Π°ΡΡ‚ΡŒ просчСта Π»ΠΎΠΆΠΈΡ‚ΡŒΡΡ Π½Π° ΠΌΠΎΡ‰Π½ΠΎΡΡ‚ΡŒ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ процСссора, поэтому, ΠΎΡ‚ Π΅Π³ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ зависит ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Π²ΠΈΠ΄Π΅ΠΎ-Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π°.

    ΠšΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ: , / / ΠΎΡ‚

    ΠžΡ‚Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ΅ освСщСниС ΠΈ Π·Π°Ρ‚Π΅Π½Π΅Π½ΠΈΠ΅ , ΠΎΡ‚Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³ (Π°Π½Π³Π». deferred shading ) - программная Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ° (ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠ°) Π² Ρ‚Ρ€Ρ‘Ρ…ΠΌΠ΅Ρ€Π½ΠΎΠΉ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠΉ Π³Ρ€Π°Ρ„ΠΈΠΊΠ΅, которая ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ освСщСниС ΠΈ Π·Π°Ρ‚Π΅Π½Π΅Π½ΠΈΠ΅ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ сцСны. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΎΡ‚Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ освСщСния ΠΈ затСнСния процСсс вычислСния разбиваСтся Π½Π° мСньшиС части, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π² ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΡƒΡŽ Π±ΡƒΡ„Π΅Ρ€Π½ΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΈ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡŽΡ‚ΡΡ ΠΏΠΎΡ‚ΠΎΠΌ. Π“Π»Π°Π²Π½Ρ‹ΠΌ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ΠΌ ΠΎΡ‚Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ освСщСния ΠΈ затСнСния ΠΎΡ‚ стандартных ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² освСщСния являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ эти ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΡˆΠ΅ΠΉΠ΄Π΅Ρ€Π° Π²ΠΎ Ρ„Ρ€Π΅ΠΉΠΌΠ±ΡƒΡ„Π΅Ρ€ Ρ†Π²Π΅Ρ‚Π°. Π Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π² соврСмСнных Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Ρ… срСдствах ΠΏΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‚Π΅Π½Π΄Π΅Π½Ρ†ΠΈΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ мноТСствСнныС Ρ†Π΅Π»ΠΈ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° (Π°Π½Π³Π». multiple render targets - MRT ) для избСТания ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½Ρ‹Ρ… трансформаций Π²Π΅Ρ€ΡˆΠΈΠ½. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ, ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ построСны всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π±ΡƒΡ„Π΅Ρ€Ρ‹, ΠΎΠ½ΠΈ Π·Π°Ρ‚Π΅ΠΌ ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΊΠ°ΠΊ вводная тСкстура) ΠΈΠ· ΡˆΠ΅ΠΉΠ΄Π΅Ρ€Π½ΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠ΅ освСщСния) ΠΈ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡŽΡ‚ΡΡ для создания Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°. Π’ этом случаС Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈ полоса пропускания памяти, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° сцСны, ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°ΡŽΡ‚ΡΡ Π΄ΠΎ Π²ΠΈΠ΄ΠΈΠΌΡ‹Ρ… частСй, Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ освСщаСмой сцСны.

    ΠŸΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΌ прСимущСством ΠΎΡ‚Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° являСтся ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с Β«Π³Ρ€ΡƒΠ±Ρ‹ΠΌΒ» ΠΈ Β«Ρ€Π°Π½Π½ΠΈΠΌΒ» тСстированиСм Z-Π±ΡƒΡ„Π΅Ρ€Π°, Π΄Ρ€ΡƒΠ³ΠΈΠ΅ прСимущСства Π΅Ρ‰Ρ‘ Π½Π΅ исслСдованы Π² Π΄ΠΎΠ»ΠΆΠ½ΠΎΠΉ стСпСни. Π­Ρ‚ΠΈ прСимущСства ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ простоС ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ слоТными рСсурсами освСщСния, Π»Ρ‘Π³ΠΊΠΎΡΡ‚ΡŒ управлСния Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ слоТными ΡˆΠ΅ΠΉΠ΄Π΅Ρ€Π½Ρ‹ΠΌΠΈ рСсурсами ΠΈ ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Π° Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.

    Одним ΠΈΠ· ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… нСдостатков Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ ΠΎΡ‚Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° являСтся Π½Π΅ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°, хотя эта ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° являСтся ΠΎΠ±Ρ‰Π΅ΠΉ ΠΈ для Z-Π±ΡƒΡ„Π΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΠΈ; Π²Ρ‹Ρ…ΠΎΠ΄ΠΎΠΌ ΠΈΠ· этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ являСтся Π·Π°Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ ΠΈ сортировка Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Ρ‹Ρ… частСй сцСны.

    Π”Ρ€ΡƒΠ³ΠΈΠΌ довольно Π²Π°ΠΆΠ½Ρ‹ΠΌ нСдостатком ΠΎΡ‚Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° являСтся Π½Π΅ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ со сглаТиваниСм. Π’Π°ΠΊ ΠΊΠ°ΠΊ стадия освСщСния ΠΎΡ‚Π΄Π΅Π»Π΅Π½Π° ΠΎΡ‚ стадии Π³Π΅ΠΎΠΌΠ΅Ρ‚Ρ€ΠΈΠΈ, Ρ‚ΠΎ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹ΠΉ Π°Π½Ρ‚ΠΈ-алиасинг Π½Π΅ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌ. Π₯отя ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΡ€ΠΎΡ…ΠΎΠ΄, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΏΡ€ΠΈ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π΅ Π±Π°Π·ΠΎΠ²Ρ‹Ρ… свойств (диффузная ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°, ΠΊΠ°Ρ€Ρ‚Π° высот), ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ сглаТиваниС, ΠΊ ΠΏΠΎΠ»Π½ΠΎΠΌΡƒ ΠΎΡΠ²Π΅Ρ‰Π΅Π½ΠΈΡŽ сглаТиваниС Π½Π΅ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΠΎ. Одной ΠΈΠ· стандартных ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊ для прСодолСния этого ограничСния являСтся ΠΌΠ΅Ρ‚ΠΎΠ΄ выдСлСния Π³Ρ€Π°Π½ΠΈΡ† (en:edge detection) Ρ„ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ изобраТСния ΠΈ Π·Π°Ρ‚Π΅ΠΌ примСнСния размытия ΠΊ граням (Π³Ρ€Π°Π½ΠΈΡ†Π°ΠΌ).

    ΠœΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠ° ΠΎΡ‚Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° всё Π±ΠΎΠ»Π΅Π΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹Ρ… ΠΈΠ³Ρ€Π°Ρ…, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ допускаСт использованиС Π½Π΅ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ количСства источников свСта ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… ΡˆΠ΅ΠΉΠ΄Π΅Ρ€Π½Ρ‹Ρ… инструкций. Π’ частности, Β«Advanced Technology GroupΒ», ΠΊΠΎΠΌΠ°Π½Π΄Π° спСциалистов ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Sony Computer Entertainment, исслСдовала эту ΠΎΠ±Π»Π°ΡΡ‚ΡŒ ΠΈ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Π²ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ эту Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΡŽ Π² графичСскиС Π΄Π²ΠΈΠΆΠΊΠΈ. PhyreEngine, бСсплатный графичСский Π΄Π²ΠΈΠΆΠΎΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Sony Computer Entertainment, ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΎΡ‚Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ освСщСния ΠΈ затСнСния. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ ΠΈΠ³Ρ€, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… ΠΎΡ‚Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³ ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠ°Π»Π° Sony Computer Entertainment, ΡΠ²Π»ΡΡŽΡ‚ΡΡ Killzone 2 Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Guerrilla Games, LittleBigPlanet Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Media Molecule ΠΈ inFamous Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Sucker Punch Productions. К ΠΈΠ³Ρ€Π°ΠΌ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΡ‚Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³, Π½ΠΎ Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Sony Π½Π΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π»Π° участиС, ΡΠ²Π»ΡΡŽΡ‚ΡΡ сСрия ΠΈΠ³Ρ€ S.T.A.L.K.E.R. Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ GSC Game World, Dead Space Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Electronic Arts ΠΈ Tabula Rasa Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ NCSoft. ВСхнология ΠΎΡ‚Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ освСщСния ΠΈ затСнСния ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΌ Π΄Π²ΠΈΠΆΠΊΠ΅ CryEngine 3 Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Crytek.


    Π˜ΡΡ‚ΠΎΡ€ΠΈΡ

    ИдСя ΠΎΡ‚Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ освСщСния ΠΈ затСнСния ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Π±Ρ‹Π»Π° прСдставлСна Майклом Π”ΠΈΡ€ΠΈΠ½Π³ΠΎΠΌ (en:Michael Deering) ΠΈ Π΅Π³ΠΎ ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌΠΈ Π² Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Β«The triangle processor and normal vector shader: a VLSI system for high performance graphicsΒ», ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½ΠΎΠΉ Π² 1988 Π³ΠΎΠ΄Ρƒ. Π₯отя Π² Ρ€Π°Π±ΠΎΡ‚Π΅ Π½ΠΈΠ³Π΄Π΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ слово Β«ΠΎΡ‚Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉΒ», концСпция, прСдставлСнная Ρ‚Π°ΠΌ, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π΅Π΄Π°Π²Π½ΠΎ нашла практичСскоС ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² Ρ‚Π°ΠΊΠΈΡ… прилоТСниях, ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹Π΅ ΠΈΠ³Ρ€Ρ‹.


    ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΡ

    1. NVIDIA SDK 9.51 - Featured Code Samples - download.nvidia.com/developer/SDK/Individual_Samples/featured_samples.html. NVIDIA (2007-01-17).
    2. Deferred shading tutorial - www710.univ-lyon1.fr/~jciehl/Public/educ/GAMA/2007/Deferred_Shading_Tutorial_SBGAMES2005.pdf. Pontifical Catholic University of Rio de Janeiro.
    3. Dead Space by Electronic Arts - nzone.com/object/nzone_deadspace_feature.html. NVIDIA.
    4. Deferred shading in Tabula Rasa - developer.nvidia.com/GPUGems3/gpugems3_ch19.html. NVIDIA.
    5. Deering, Michael; Stephanie Winner, Bic Schediwy, Chris Duffy, Neil Hunt. Β«The triangle processor and normal vector shader: a VLSI system for high performance graphicsΒ». ACM SIGGRAPH Computer Graphics 22 (4): 21–30.
    6. Deferred Shading - download.nvidia.com/developer/presentations/2004/6800_Leagues/6800_Leagues_Deferred_Shading.pdf (PDF). NVIDIA.
    7. Klint, Josh. Β«Deferred Rendering in Leadwerks Engine - www.leadwerks.com/files/Deferred_Rendering_in_Leadwerks_Engine.pdfΒ».
    ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ
    Π”Π°Π½Π½Ρ‹ΠΉ Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚ составлСн Π½Π° основС ΡΡ‚Π°Ρ‚ΡŒΠΈ ΠΈΠ· русской Π’ΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΠΈ . Бинхронизация Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° 19.07.11 17:46:16
    ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚Ρ‹:

    Β«Π Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Β» – всС Ρ‡Π°Ρ‰Π΅ ΠΌΡ‹ встрСчаСмся с этим Π½ΠΎΠ²Ρ‹ΠΌ ΠΈ совсСм Π½Π΅ понятным словом. Π˜Π³Ρ€Ρ‹, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ, с Π½Π΅ Ρ‚Π°ΠΊΠΈΡ… Π΄Π°Π²Π½ΠΈΡ… ΠΏΠΎΡ€, профСссии – Π²ΡΡŽΠ΄Ρƒ ΠΌΡ‹ встрСчаСмся с Π½ΠΈΠΌ. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΆΠ΅ Ρ‚Π°ΠΊΠΎΠ΅ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³?

    Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³?

    Π Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³ 3D ΠΌΠΎΠ΄Π΅Π»ΠΈ

    Π’ ΡˆΠΈΡ€ΠΎΠΊΠΎΠΌ смыслС слова: Π Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³ – это Ρ‚Π΅Ρ€ΠΌΠΈΠ½ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠΉ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ процСсс Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΈΠ»ΠΈ построСния изобраТСния, ΠΌΠΎΠ΄Π΅Π»ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. А Ρ‚Π°ΠΊΠΎΠ΅ странноС Π½Π°Π·Π²Π°Π½ΠΈΠ΅ русский язык позаимствовал Ρƒ английского, Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ услоТнив Π½Π°ΠΌ Тизнь, вСдь Ссли Π±Ρ‹ ΠΌΡ‹ Π½Π°Π·Ρ‹Π²Π°Π»ΠΈ Β«renderingΒ» Β«Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉΒ», Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊ ΠΈ пСрСводится Π½Π° русский язык, всС Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ понятнСй.

    Однако Π² контСкстС ΠΏΠΎΠ΄ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³ΠΎΠΌ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²Π²ΠΈΠ΄Ρƒ совсСм Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π²Π΅Ρ‰ΠΈ. НапримСр, принимая вас Π½Π° Ρ€ΠΎΠ±ΠΎΡ‚Ρƒ, ΠΏΠΎΠ΄ Π΄Π°Π½Π½Ρ‹ΠΌ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Ρ‚ΡŒ Π½Π°Π²Ρ‹ΠΊΠΈ создания 3D Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ это Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послСдний этап Π΅Ρ‘ создания.

    ΠšΡ‚ΠΎ занимаСтся Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³ΠΎΠΌ?

    ВсС этапы создания 3D ΠΌΠΎΠ΄Π΅Π»ΠΈ

    Бамая распространСнная профСссия Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰Π°Ρ ΠΎΡ‚ вас знания Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° это Β«3D Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Β». БпСциалист Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ€ΠΎΠ΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ всС: ΠΎΡ‚ элСмСнтарного Π±Π°Π½Π΅Ρ€Π° Π΄ΠΎ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹Ρ… ΠΈΠ³Ρ€.

    И, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΆΠ΅, 3D Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€ занимаСтся Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³ΠΎΠΌ, Π½ΠΎ ΠΈ всСми ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ этапами создания 3D Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ: ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, тСкстурированиС, освСщСниС, анимация ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС – визуализация.

    Однако, 3D Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с матСматичСскими ΠΈ физичСскими Ρ„ΠΎΡ€ΠΌΡƒΠ»Π°ΠΌΠΈ, описывая ΠΈΡ… языками программирования. ВсС это Π·Π° Π½Π΅Π³ΠΎ Π΄Π΅Π»Π°ΡŽΡ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ компиляторы (3D Max, Maya, Cinema 4D, Zbrush, Blender ΠΈ Ρ‚.Π΄.) ΠΈ ΡƒΠΆΠ΅ написанных Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ физичСских свойств (ODE, Newton, PhysX, Bullet ΠΈ Ρ‚.ΠΏ.).

    ΠžΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ срСди пСрСчислСнных Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ 3D Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ Π±Π΅ΡΠΏΠ»Π°Ρ‚Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ – графичСскиС Π΄Π²ΠΈΠΆΠΊΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ для Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π°, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Β«ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈΒ», Π½ΠΎ ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ†Π΅Π»ΡƒΡŽ, Π° Π³Π»Π°Π²Π½ΠΎΠ΅ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΡƒΡŽ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΡƒΡŽ ΠΈΠ³Ρ€Ρƒ. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ Β«TorchlightΒ» Π² качСствС ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ Π΄Π²ΠΈΠΆΠΊΠ° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΈΠΌΠ΅Π½Π½ΠΎ OGRE.

    Ну, Π° для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ‚Π°ΠΊΠΎΠ³ΠΎ количСства ΠΈ качСства графичСских сцСн Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅ достаточно, поэтому Π² послСднСС врСмя для Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° Π΄Π΅Π»Π°ΡŽΡ‚ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½ΠΎ ΠΈ сСрвисы для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΡ… процСссов, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Β«Ρ€Π΅Π½Π΄Π΅Ρ€ Ρ„Π΅Ρ€ΠΌΠ°Β». И стоит Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΡƒΠ΄ΠΎΠ²ΠΎΠ»ΡŒΡΡ‚Π²ΠΈΠ΅ это Π½Π΅ ΠΈΠ· Π΄Π΅ΡˆΠ΅Π²Ρ‹Ρ…, Π½Π΅ смотря Π½Π° Π½ΠΈΠ·ΠΊΠΈΠ΅ Ρ†Π΅Π½Ρ‹ Ρ€Π΅Π½Π΄Π΅Ρ€ Ρ„Π΅Ρ€ΠΌΡ‹ Ρ†Π΅Π½Π° Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° получаСтся довольно Π²Π½ΡƒΡˆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ – 3,9 Ρ†Π΅Π½Ρ‚ΠΎΠ² / Π“Π“Ρ†-час.

    На этом экскурс ΠΏΠΎ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Ρƒ ΠΏΠΎΠ΄ΠΎΡˆΡ‘Π» ΠΊ ΠΊΠΎΠ½Ρ†Ρƒ, ΠΈ Ссли вас это ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Π΅Ρ‚ – Π·Π°Π½ΠΈΠΌΠ°ΠΉΡ‚Π΅ΡΡŒ, вСдь Π·Π°Ρ€ΠΏΠ»Π°Ρ‚Ρ‹ Ρƒ Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π³ΠΎ 3D Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π° Π½Π΅ малСнькиС, Π° игровая индустрия это Ρ‚Π° ΠΎΡ‚Ρ€Π°ΡΠ»ΡŒ, Ρ‡Ρ‚ΠΎ вряд Π»ΠΈ ΠΊΠΎΠ³Π΄Π°-Ρ‚ΠΎ станСт нСвострСбованной.

    Π Π΅ΠΉΡ‚ΠΈΠ½Π³: 8.9 ΠΈΠ· 10 (13 голоса)