ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΡ€Π΅Π»ΠΎΠΌΠ»ΡΡŽΡ‰ΠΈΡ… ΠΈ ΠΎΡ‚Ρ€Π°ΠΆΠ°ΡŽΡ‰ΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²

ΠšΡƒΡ€ΡΠΎΠ²Π°ΡΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

Если ΠΌΠ΅ΠΆΠ΄Ρƒ источником свСта ΠΈ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ пСрСсСчСния Π»ΡƒΡ‡Π° с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ находится Π½Π΅ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Ρ‚ΠΎ ΡΡ‡ΠΈΡ‚аСтся, Ρ‡Ρ‚ΠΎ данная Ρ‚ΠΎΡ‡ΠΊΠ° находится Π² Ρ‚Π΅Π½ΠΈ. Π’Π°ΠΊΠΈΠ΅ Ρ‚Π΅Π½ΠΈ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΡΠΏΠ»ΠΎΡˆΠ½Ρ‹ΠΌΠΈ, ΠΈ Π½Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ рСалистичным. Π’Π΅Π½ΠΈ сплошной интСнсивности ΠΎΡ‚ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² выглядят нСрСалистично, поэтому считаСтся, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π½Π΅ ΠΎΡ‚брасываСт Ρ‚Π΅Π½ΡŒ. Если дискриминант ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ уравнСния мСньшС… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΡ€Π΅Π»ΠΎΠΌΠ»ΡΡŽΡ‰ΠΈΡ… ΠΈ ΠΎΡ‚Ρ€Π°ΠΆΠ°ΡŽΡ‰ΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

ΠšΡƒΡ€ΡΠΎΠ²Π°Ρ Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΠΎ ΠΊΡƒΡ€ΡΡƒ: «ΠœΠ°ΡˆΠΈΠ½Π½Π°Ρ Π³Ρ€Π°Ρ„ΠΈΠΊΠ°».

«Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΡ€Π΅Π»ΠΎΠΌΠ»ΡΡŽΡ‰ΠΈΡ… ΠΈ ΠΎΡ‚Ρ€Π°ΠΆΠ°ΡŽΡ‰ΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²».

Москва 2012 Π³.

ВСхничСскоС Π·Π°Π΄Π°Π½ΠΈΠ΅ ОснованиС для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ — курсовая Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΠΎ ΠΊΡƒΡ€ΡΡƒ «ΠœΠ°ΡˆΠΈΠ½Π½Π°Ρ Π³Ρ€Π°Ρ„ΠΈΠΊΠ°».

ЦСль Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ — Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Ρ‹Ρ… ΠΈ ΠΎΡ‚Ρ€Π°ΠΆΠ°ΡŽΡ‰ΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² машинной Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ.

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ — ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ интСрфСйсом, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΡΡ‚ΠΈΡ‡Π½ΠΎΡΡ‚ΡŒ изобраТСния, эффСкты отраТСния ΠΈ ΠΏΡ€Π΅Π»ΠΎΠΌΠ»Π΅Π½ΠΈΡ.

ОписаниС — ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ комплСкс состоит ΠΈΠ· ΠΈΠ½Ρ‚СрфСйса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ модуля, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π·Π°Π΄Π°Π½Π½Ρ‹Ρ… Π½Π°Π±ΠΎΡ€ΠΎΠ² ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²ΠΎΠ².

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ характСристики:

1. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹.

2. НаличиС Ρ‚Π΅Π½Π΅ΠΉ.

3. НаличиС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° с ΠΏΡ€Π΅Π»ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ΠΌ.

4. НаличиС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° с ΠΎΡ‚Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ.

5. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ†Π΅Π½ΠΊΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… характСристик.

1.

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

.

1.1 Алгоритм прямой трассировки Π»ΡƒΡ‡Π΅ΠΉ.

1.2 Алгоритм ΠΈΠ·Π»ΡƒΡ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

1.3 Алгоритм ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ трассировки Π»ΡƒΡ‡Π΅ΠΉ.

2. ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ΡΠΊΠ°Ρ Ρ‡Π°ΡΡ‚ΡŒ.

2.1 Поиск ΠΎΡ‚Ρ€Π°ΠΆΡ‘Π½Π½ΠΎΠ³ΠΎ Π»ΡƒΡ‡Π°.

2.2 Поиск ΠΏΡ€Π΅Π»ΠΎΠΌΠ»Ρ‘Π½Π½ΠΎΠ³ΠΎ Π»ΡƒΡ‡Π°.

2.3 ΠžΡΠ²Π΅Ρ‰Π΅Π½ΠΈΠ΅ ΠΈ Ρ‚Π΅Π½ΠΈ.

2.4 Алгоритм.

2.5 ВычислСниС Π½ΠΎΡ€ΠΌΠ°Π»Π΅ΠΉ.

2.5.1 ВычислСниС Π½ΠΎΡ€ΠΌΠ°Π»ΠΈ ΠΊ ΠΏΠΎΠ»ΠΈΠ³ΠΎΠ½Ρƒ.

2.5.2 ВычислСниС Π½ΠΎΡ€ΠΌΠ°Π»ΠΈ ΠΊ ΡΡ„Π΅Ρ€Π΅ Π² Π·Π°Π΄Π°Π½Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠ΅.

2.6 Поиск пСрСсСчСния с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ.

2.6.1 Поиск пСрСсСчСния с ΠΏΠΎΠ»ΠΈΠ³ΠΎΠ½ΠΎΠΌ.

2.6.2 Поиск пСрСсСчСния со ΡΡ„Π΅Ρ€ΠΎΠΉ.

3. ВСхнологичСская Ρ‡Π°ΡΡ‚ΡŒ.

3.1 Π’Ρ‹Π±ΠΎΡ€ языка программирования.

3.2 Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

3.2.1 Бписок ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

3.2.2 Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρ‹ ΠΈ ΠΊΠ»Π°ΡΡΡ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

3.3 ОписаниС интСрфСйса ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

4. Π˜ΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠ°Ρ Ρ‡Π°ΡΡ‚ΡŒ Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π›ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Π°.

1.

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

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

ΠŸΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹. НапримСр, ΠΏΡ€ΡΠΌΡƒΡŽ трассировку Π»ΡƒΡ‡Π΅ΠΉ, ΠΎΠ±Ρ€Π°Ρ‚Π½ΡƒΡŽ трассировку Π»ΡƒΡ‡Π΅ΠΉ, Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΈΠ·Π»ΡƒΡ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ (radiosity). Π’ Ρ€ΡΠ΄Π΅ случаСв ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ z-Π±ΡƒΡ„Π΅Ρ€Π°, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΠΎ Π±Ρ‹ΡΡ‚Ρ€ΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΈΡŽ ΠΎΠ½ ΠΎΠΏΠ΅Ρ€Π΅ΠΆΠ°Π΅Ρ‚ Π²Ρ‹ΡˆΠ΅ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½Π½Ρ‹Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹. Однако ΠΏΠΎ ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Ρƒ изобраТСния ΠΎΠ½ Ρ…ΡƒΠΆΠ΅ рСкурсивных Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ².

1.1 Алгоритм прямой трассировки Π»ΡƒΡ‡Π΅ΠΉ Π”Π°Π½Π½Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ Π΄Π°Π²Π½ΠΎ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΠ½ Ρ€Π΅Π΄ΠΊΠΎ. Π­Ρ‚ΠΎ связано с Π±ΠΎΠ»ΡŒΡˆΠΈΠΌΠΈ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π·Π°Ρ‚Ρ€Π°Ρ‚Π°ΠΌΠΈ.

Из ΠΈΠ·Π»ΡƒΡ‡Π°ΡŽΡ‰ΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² (источников освСщСния) исходят Π»ΡƒΡ‡ΠΈ свСта. Π­Ρ‚ΠΈ Π»ΡƒΡ‡ΠΈ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΌΠΈ. Π’Π°ΠΊΠΈΡ… Π»ΡƒΡ‡Π΅ΠΉ ΠΏΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ направлСниям испускаСтся бСсчислСнноС мноТСство. Π’Π΅ Π»ΡƒΡ‡ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΡΠ΅ΠΊΠ°ΡŽΡ‚ΡΡ с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ, ΠΏΠΎΠ³Π»ΠΎΡ‰Π°ΡŽΡ‚ΡΡ, ΠΎΡ‚Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ ΠΈΠ»ΠΈ ΠΏΡ€Π΅Π»ΠΎΠΌΠ»ΡΡŽΡ‚ΡΡ. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ этого Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ Π²Ρ‚ΠΎΡ€ΠΈΡ‡Π½Ρ‹Π΅ Π»ΡƒΡ‡ΠΈ. Π›ΡƒΡ‡ΠΈ, Π½Π΅ ΠΏΠ΅Ρ€Π΅ΡΠ΅ΠΊΠ°ΡŽΡ‰ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, уходят Π² ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠ΅ пространство.

Π’ Π΄Π°Π½Π½ΠΎΠΌ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€ всСх Π»ΡƒΡ‡Π΅ΠΉ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° ΠΏΠΎΠΏΠ°Π΄Π°Π½ΠΈΠ΅ Π»ΡƒΡ‡Π° Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈ Π² ΠΊΠ°ΠΌΠ΅Ρ€Ρƒ. Из-Π·Π° большого количСства Π»ΠΈΡˆΠ½ΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, связанных с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π½Π΅ Π²ΡΠ΅ Π»ΡƒΡ‡ΠΈ ΠΏΠΎΠΏΠ°Π΄ΡƒΡ‚ Π² ΠΊΠ°ΠΌΠ΅Ρ€Ρƒ, этот ΠΌΠ΅Ρ‚ΠΎΠ΄ являСтся ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠ°ΠΌΡ‹Ρ… Π΄ΠΎΠ»Π³ΠΈΡ….

1.2 Алгоритм ΠΈΠ·Π»ΡƒΡ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Алгоритм ΠΈΠ·Π»ΡƒΡ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ рассматриваСт частный случай Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ уравнСния освСщСнности, ΠΊΠΎΠ³Π΄Π° ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π΄ΠΈΡ„Ρ„ΡƒΠ·Π½Ρ‹ΠΌΠΈ. ΠœΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» называСтся.

Π΄ΠΈΡ„Ρ„ΡƒΠ·Π½Ρ‹ΠΌ, Ссли вся энСргия, отраТСнная ΠΎΡ‚ Π΅Π³ΠΎ повСрхности рассСиваСтся Ρ€Π°Π²Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎ ΠΏΠΎ Π²ΡΠ΅ΠΌ направлСниям. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ рассматриваСт распространСниС Π² ΠΏΡ€ΠΎΡΡ‚ранствС свСтовых Π²ΠΎΠ»Π½. Π’Π°ΠΆΠ½Ρ‹ΠΌ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ΠΌ являСтся Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ замкнутости систСмы, Ρ‚. Π΅. суммарная энСргия Π² ΡΠΈΡΡ‚Π΅ΠΌΠ΅ Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒΡΡ.

Π”Π°Π½Π½Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ являСтся Π±ΠΎΠ»Π΅Π΅ слоТным, Ρ‡Π΅ΠΌ трассировка Π»ΡƒΡ‡Π΅ΠΉ, ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΠΌ большоС количСство Π·Π°Ρ‚Ρ€Π°Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Ρ… рСсурсов.

1.3 Алгоритм ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ трассировки Π»ΡƒΡ‡Π΅ΠΉ Π”Π°Π½Π½Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ популярных для получСния рСалистичного изобраТСния. Π’Π°ΠΊ ΠΊΠ°ΠΊ источники освСщСния ΠΈΡΠΏΡƒΡΠΊΠ°ΡŽΡ‚ ΠΎΡ‡Π΅Π½ΡŒ большоС количСство Π»ΡƒΡ‡Π΅ΠΉ, Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ прямой трассировки Π½Π΅ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π΅Π½.

ΠŸΡ€ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ трассировки Π»ΡƒΡ‡ΠΈ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ Π½Π΅ ΠΎΡ‚ ΠΈΡΡ‚ΠΎΡ‡Π½ΠΈΠΊΠΎΠ² освСщСния, Π° ΠΎΡ‚ Ρ‚ΠΎΡ‡ΠΊΠΈ наблюдСния. Π­Ρ‚ΠΎ позволяСт ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ Π»ΡƒΡ‡ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ вносят Π²ΠΊΠ»Π°Π΄ Π² ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅. Алгоритм ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ трассировки Π»ΡƒΡ‡Π΅ΠΉ позволяСт ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π±Π»ΠΈΠ·ΠΊΠΎΠ΅ ΠΊ Ρ€Π΅Π°Π»ΠΈΡΡ‚ΠΈΡ‡Π½ΠΎΠΌΡƒ ΠΈ ΡˆΠΈΡ€ΠΎΠΊΠΎ примСняСтся Π² Π½Π°ΡΡ‚оящСС врСмя. ΠŸΡ€ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° вводятся Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ограничСния:

А) Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊΠΈ освСщСния ΠΌΠΎΠ³ΡƒΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΡΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π»ΡƒΡ‡ΠΈ, Π½ΠΎ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡ‚Ρ€Π°ΠΆΠ°Ρ‚ΡŒ, ΠΏΠΎΠ³Π»ΠΎΡ‰Π°Ρ‚ΡŒ ΠΈ ΠΏΡ€Π΅Π»ΠΎΠΌΠ»ΡΡ‚ΡŒ. Π’ Π΄Π°Π½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ‚ΠΎΡ‡Π΅Ρ‡Π½Ρ‹Π΅ источники освСщСния. Они ΠΈΠ·Π»ΡƒΡ‡Π°ΡŽΡ‚ свСт Ρ€Π°Π²Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎ Π²ΠΎ Π²ΡΠ΅ стороны.

Π‘) Для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² со ΡΠ²ΠΎΠΉΡΡ‚Π²Π°ΠΌΠΈ прСломлСния Π½Π΅ ΡƒΡ‡ΠΈΡ‚ываСтся Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ коэффициСнта прСломлСния ΠΎΡ‚ Π΄Π»ΠΈΠ½Ρ‹ Π²ΠΎΠ»Π½Ρ‹.

Π’) Вводится ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Π³Π»ΡƒΠ±ΠΈΠ½Ρ‹ рСкурсии трассировки.

Π­Ρ‚Π° Ρ€Π°Π±ΠΎΡ‚Π° посвящСна ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ трассировки Π»ΡƒΡ‡Π΅ΠΉ.

2. ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ΡΠΊΠ°Ρ Ρ‡Π°ΡΡ‚ΡŒ Π’ ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° для построСния рСалистичного изобраТСния Π±Ρ‹Π» Π²Ρ‹Π±Ρ€Π°Π½ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ трассировки Π»ΡƒΡ‡Π΅ΠΉ. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ являСтся Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΌ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ позволяСт Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡ‹Ρ… повСрхностСй, Π½Π°Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ‚Π΅Π½Π΅ΠΉ, ΠΎΡ‚Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΠΏΡ€Π΅Π»ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅. Π’Π°ΠΊΠΆΠ΅ ΠΎΠ½ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ сокращаСт ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€ Π»ΡƒΡ‡Π΅ΠΉ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ ΠΏΡ€ΠΈ прямой трассировки.

2.1 Поиск ΠΎΡ‚Ρ€Π°ΠΆΡ‘Π½Π½ΠΎΠ³ΠΎ Π»ΡƒΡ‡Π° ΠŸΡ€ΠΈ пСрСсСчСниС Π»ΡƒΡ‡Π° с ΠΏΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ направлСния ΠΎΡ‚Ρ€Π°ΠΆΡ‘Π½Π½ΠΎΠ³ΠΎ ΠΈ ΠΏΡ€Π΅Π»ΠΎΠΌΠ»Ρ‘Π½Π½ΠΎΠ³ΠΎ Π»ΡƒΡ‡Π΅ΠΉ (Ссли ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ свойствами). ΠŸΠ°Π΄Π°ΡŽΡ‰ΠΈΠΉ Π»ΡƒΡ‡, ΠΎΡ‚Ρ€Π°ΠΆΡ‘Π½Π½Ρ‹ΠΉ ΠΈ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒ ΠΊ ΠΏΠΎΠ²Π΅Ρ€Ρ…ности Π² Ρ‚ΠΎΡ‡ΠΊΠ΅ касания Π»Π΅ΠΆΠ°Ρ‚ Π² ΠΎΠ΄Π½ΠΎΠΉ плоскости, ΡƒΠ³ΠΎΠ» падСния Ρ€Π°Π²Π΅Π½ ΡƒΠ³Π»Ρƒ отраТСния.

Π‘ΡƒΠ΄Π΅ΠΌ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π·Π°Π΄Π°Π½ радиус-Π²Π΅ΠΊΡ‚ΠΎΡ€ S, Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹ΠΉ Π½Π° ΠΈΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ свСта, Π° Ρ‚Π°ΠΊΠΆΠ΅ извСстСн радиус-Π²Π΅ΠΊΡ‚ΠΎΡ€ Π½ΠΎΡ€ΠΌΠ°Π»ΠΈ N. ВрСбуСтся Π½Π°ΠΉΡ‚ΠΈ Π²Π΅ΠΊΡ‚ΠΎΡ€ ΠΎΡ‚Ρ€Π°ΠΆΡ‘Π½Π½ΠΎΠ³ΠΎ Π»ΡƒΡ‡Π°. ΠžΠ±ΠΎΠ·Π½Π°Ρ‡ΠΈΠΌ Π΅Π³ΠΎ R.

ΠžΡ‚Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π»ΡƒΡ‡Π°.

Рис. 2.1.

Рассмотрим Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½Ρ‹Π΅ Π²Π΅ΠΊΡ‚ΠΎΡ€Π° R1 ΠΈ N1. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π²Π΅ΠΊΡ‚ΠΎΡ€Ρ‹ Π½ΠΎΡ€ΠΌΠ°Π»ΠΈ, ΠΏΠ°Π΄Π°ΡŽΡ‰Π΅Π³ΠΎ Π»ΡƒΡ‡Π° ΠΈ ΠΎΡ‚Ρ€Π°ΠΆΡ‘Π½Π½ΠΎΠ³ΠΎ Π»ΡƒΡ‡Π° находятся Π² ΠΎΠ΄Π½ΠΎΠΉ плоскости, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ.

R1+S1=N`,.

Π³Π΄Π΅ N` - это Π²Π΅ΠΊΡ‚ΠΎΡ€, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ Ρ€ΠΎΠΌΠ±Π° ΠΈ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠΉ ΠΏΠΎ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡŽ с Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΡŽ. Π”Π»ΠΈΠ½Π° Π²Π΅ΠΊΡ‚ΠΎΡ€Π° N` Ρ€Π°Π²Π½Π° 2 cos.

Π’Π°ΠΊ ΠΊΠ°ΠΊ Π²Π΅ΠΊΡ‚ΠΎΡ€ N` ΠΏΠΎ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡŽ совпадаСт с N1, Ρ‚ΠΎ.

N` = N12 cos,.

ΠΈΠ»ΠΈ.

R1+S1=N12 cos.

ΠžΡ‚ΡΡŽΠ΄Π° Π½Π°ΠΉΠ΄Ρ‘ΠΌ Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½Ρ‹ΠΉ Π²Π΅ΠΊΡ‚ΠΎΡ€ ΠΎΡ‚Ρ€Π°ΠΆΡ‘Π½Π½ΠΎΠ³ΠΎ Π»ΡƒΡ‡Π°:

R1=N12 cosS1= N/|N|2 cos-S/|S|.

Найдём cos, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ скалярноС ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠ² N ΠΈ S:

cos = N*S/(|N|*|S|).

ΠŸΠΎΠ΄ΡΡ‚Π°Π²ΠΈΠΌ это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ для R1:

R1 = N*2*N*S/(|N2|*|S|) — S/|S|.

Полагая, Ρ‡Ρ‚ΠΎ искомый Π²Π΅ΠΊΡ‚ΠΎΡ€ ΠΎΡ‚Ρ€Π°ΠΆΡ‘Π½Π½ΠΎΠ³ΠΎ Π»ΡƒΡ‡Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ‚Π°ΠΊΡƒΡŽ ΠΆΠ΅ Π΄Π»ΠΈΠ½Ρƒ, Ρ‡Ρ‚ΠΎ ΠΈ Π²Π΅ΠΊΡ‚ΠΎΡ€ ΠΏΠ°Π΄Π°ΡŽΡ‰Π΅Π³ΠΎ Π»ΡƒΡ‡Π°, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ R=|S|R1, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ.

R = N*2*N*S/|N2|-S (2.1).

2.2 Поиск ΠΏΡ€Π΅Π»ΠΎΠΌΠ»Ρ‘Π½Π½ΠΎΠ³ΠΎ Π»ΡƒΡ‡Π° Для опрСдСлСния направлСния ΠΏΡ€Π΅Π»ΠΎΠΌΠ»Ρ‘Π½Π½ΠΎΠ³ΠΎ Π»ΡƒΡ‡Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π·Π°ΠΊΠΎΠ½ БнСллиуса: «ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ синусов ΡƒΠ³Π»ΠΎΠ² падСния ΠΈ ΠΎΡ‚раТСния Ρ€Π°Π²Π½ΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹Ρ… коэффициСнтов прСломлСния срСд».

ΠŸΡƒΡΡ‚ΡŒ Π·Π°Π΄Π°Π½Ρ‹ Π΄Π²Π° Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½Ρ‹Ρ… Π²Π΅ΠΊΡ‚ΠΎΡ€: S1— ΡΡ‚ΠΎ радиус-Π²Π΅ΠΊΡ‚ΠΎΡ€, Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹ΠΉ Π½Π° ΠΈΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ, ΠΈ N1 — радиус-Π²Π΅ΠΊΡ‚ΠΎΡ€ Π½ΠΎΡ€ΠΌΠ°Π»ΠΈ ΠΊ Π³Ρ€Π°Π½ΠΈΡ†Π΅ Ρ€Π°Π·Π΄Π΅Π»Π° Π΄Π²ΡƒΡ… срСд. Π’Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ извСстны Π΄Π²Π° коэффициСнта прСломлСния для Π΄Π°Π½Π½Ρ‹Ρ… срСд n1 ΠΈ n2.

ΠŸΡ€Π΅Π»ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ Π»ΡƒΡ‡Π°.

Рис. 2.2.

ВрСбуСтся Π½Π°ΠΉΡ‚ΠΈ Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½Ρ‹ΠΉ радиус-Π²Π΅ΠΊΡ‚ΠΎΡ€ ΠΏΡ€Π΅Π»ΠΎΠΌΠ»Ρ‘Π½Π½ΠΎΠ³ΠΎ Π»ΡƒΡ‡Π° T1. Π˜ΡΠΊΠΎΠΌΡ‹ΠΉ Π²Π΅ΠΊΡ‚ΠΎΡ€ Ρ€Π°Π²Π΅Π½ суммС Π΄Π²ΡƒΡ… Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠ²:

T1 = NT+B.

Найдём Π²Π½Π°Ρ‡Π°Π»Π΅ Π²Π΅ΠΊΡ‚ΠΎΡ€ NT. Он ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ ΠΏΠΎ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡŽ Π²Π΅ΠΊΡ‚ΠΎΡ€Ρƒ Π½ΠΎΡ€ΠΌΠ°Π»ΠΈ, Π° Π΅Π³ΠΎ Π΄Π»ΠΈΠ½Π° Ρ€Π°Π²Π½Π° |T1|cosΠ±2 = cosΠ±2 (Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΠΎ ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ Π·Π°Π΄Π°Ρ‡ΠΈ T1 — Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½Ρ‹ΠΉ). ΠžΡ‚ΡΡŽΠ΄Π° слСдуСт, Ρ‡Ρ‚ΠΎ NT = -N1cosΠ±2.

НСобходимо Π½Π°ΠΉΡ‚ΠΈ cosΠ±2. Π—Π°ΠΏΠΈΡˆΠ΅ΠΌ Π·Π°ΠΊΠΎΠ½ прСломлСния n1sinΠ±1 = n2sinΠ±2 Π² Π²ΠΈΠ΄Π΅:

sinΠ±2 = nsinΠ±1,.

Π³Π΄Π΅ n = n1/n2.

Π’ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ тоТдСством cos2+sin2 = 1.

Π’ΠΎΠ³Π΄Π°:

cosΠ±2 = v 1 — sin2Π±2 = v 1 — n2 sin2Π±1.

ΠΈΠ»ΠΈ.

cosΠ±2 = v (1 + n2 (cos2Π±1 — 1).

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ cosΠ±1 ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Ρ€Π°Π·ΠΈΡ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· скалярноС ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½Ρ‹Ρ… Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠ² S1 ΠΈ N1, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ cosΠ±1 = S1N1. Π’ΠΎΠ³Π΄Π° ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠ΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ для Π²Π΅ΠΊΡ‚ΠΎΡ€Π° NT:

NT = -N1v1+n2((S1N1)2 — 1).

ΠžΡΡ‚Π°Π»ΠΎΡΡŒ Π½Π°ΠΉΡ‚ΠΈ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ для Π²Π΅ΠΊΡ‚ΠΎΡ€Π° B. Он Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ся Π½Π° ΠΎΠ΄Π½ΠΎΠΉ прямой с Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠΌ A, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ A = S1 — NS. Учитывая, Ρ‡Ρ‚ΠΎ NS Ρ€Π°Π²Π΅Π½ N1cosΠ±1, Ρ‚ΠΎ:

A = S1 — N1cosΠ±1.

Π’Π°ΠΊ ΠΊΠ°ΠΊ cosΠ±1 = S1N1, Ρ‚ΠΎ.

A = S1 — N1 (S1N1).

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π΄Π»ΠΈΠ½Π° Π²Π΅ΠΊΡ‚ΠΎΡ€Π° A Ρ€Π°Π²Π½Π° sinΠ±1, Π° Π΄Π»ΠΈΠ½Π° Π²Π΅ΠΊΡ‚ΠΎΡ€Π° B Ρ€Π°Π²Π½Π° sinΠ±2, Ρ‚ΠΎ ΠžΡ‚ΠΊΡƒΠ΄Π° |B| = n|A|. Учитывая Π²Π·Π°ΠΈΠΌΠ½ΠΎΠ΅ располоТСниС Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠ² A ΠΈ B, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ:

B = -nA =n (N1(S1*N1)-S1).

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ искомоС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ для Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½ΠΎΠ³ΠΎ Π²Π΅ΠΊΡ‚ΠΎΡ€Π° Π»ΡƒΡ‡Π° прСломлСния T1:

T1 = nN1 (S1N1) — nS1 — N1v1 + n2 ((S1N1)2 — 1). (2.2).

ПослС опрСдСлСния направлСния ΠΎΡ‚Ρ€Π°ΠΆΡ‘Π½Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΠΏΡ€Π΅Π»ΠΎΠΌΠ»Ρ‘Π½Π½ΠΎΠ³ΠΎ Π»ΡƒΡ‡Π° происходит рСкурсивный Π²Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ трассировки для Π½ΠΎΠ²ΠΎΠ³ΠΎ Π»ΡƒΡ‡Π°.

2.3 ΠžΡΠ²Π΅Ρ‰Π΅Π½ΠΈΠ΅ ΠΈ Ρ‚Π΅Π½ΠΈ Π’ Π΄Π°Π½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ модСль освСщСния Π£ΠΈΡ‚Ρ‚Π΅Π΄Π°.

Богласно ΠΌΠΎΠ΄Π΅Π»ΠΈ Π£ΠΈΡ‚Ρ‚Π΅Π΄Π° Ρ†Π²Π΅Ρ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° опрСдСляСтся суммарной ΠΈΠ½Ρ‚Π΅Π½ΡΠΈΠ²Π½ΠΎΡΡ‚ΡŒΡŽ.

I (l)=Ka*Ia (l)C (l) + Kd*Id (l)*C (l) +Ks*Is (l) + Kr*Ir (l) +Kt*It (l), (2.3).

Π³Π΄Π΅ l — Π΄Π»ΠΈΠ½Π° Π²ΠΎΠ»Π½Ρ‹, C (l) — Π·Π°Π΄Π°Π½Π½Ρ‹ΠΉ исходный Ρ†Π²Π΅Ρ‚ Ρ‚ΠΎΡ‡ΠΊΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Ka, Kd, Ks, Kr ΠΈ Kt — коэффициСнты, ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ свойства ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΉ подсвСтки, Π΄ΠΈΡ„Ρ„ΡƒΠ·Π½ΠΎΠ³ΠΎ рассСивания, Π·Π΅Ρ€ΠΊΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, отраТСния ΠΈ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΡΡ‚ΠΈ.

Ia — ΠΈΠ½Ρ‚Π΅Π½ΡΠΈΠ²Π½ΠΎΡΡ‚ΡŒ Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΉ подсвСтки,.

Id — ΠΈΠ½Ρ‚Π΅Π½ΡΠΈΠ²Π½ΠΎΡΡ‚ΡŒ, учитываСмая для Π΄ΠΈΡ„Ρ„ΡƒΠ·Π½ΠΎΠ³ΠΎ рассСивания,.

Is — ΠΈΠ½Ρ‚Π΅Π½ΡΠΈΠ²Π½ΠΎΡΡ‚ΡŒ, учитываСмая для Π·Π΅Ρ€ΠΊΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ,.

Ir — ΠΈΠ½Ρ‚Π΅Π½ΡΠΈΠ²Π½ΠΎΡΡ‚ΡŒ излучСния, ΠΏΡ€ΠΈΡˆΠ΅Π΄ΡˆΠ°Ρ ΠΏΠΎ ΠΎΡ‚Ρ€Π°ΠΆΠ΅Π½Π½ΠΎΠΌΡƒ Π»ΡƒΡ‡Ρƒ,.

It — ΠΈΠ½Ρ‚Π΅Π½ΡΠΈΠ²Π½ΠΎΡΡ‚ΡŒ излучСния, ΠΏΡ€ΠΈΡˆΠ΅Π΄ΡˆΠ°Ρ ΠΏΠΎ ΠΏΡ€Π΅Π»ΠΎΠΌΠ»Π΅Π½Π½ΠΎΠΌΡƒ Π»ΡƒΡ‡Ρƒ.

Π˜Π½Ρ‚Π΅Π½ΡΠΈΠ²Π½ΠΎΡΡ‚ΡŒ Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΉ подсвСтки (Ia) для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ константа.

Π’ Π΄Π°Π½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅ Π΄ΠΈΡ„Ρ„ΡƒΠ·Π½ΠΎΠ΅ рассСиваниС ΠΈ Ρ„оновая подсвСтка Π½Π΅ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ.

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

2.4 Алгоритм.

1. Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π½Π΅ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ пиксСл Π½Π° ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚Π΅ отобраТСния (picturebox).

2. Π—Π°Π΄Π°Ρ‚ΡŒ Π²Π΅ΠΊΡ‚ΠΎΡ€ направлСния взгляда.

3. Π’Ρ‹Π·Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ опрСдСлСния интСнсивности пиксСла.

4. ΠŸΡ€ΠΈ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ΅Π½ΠΈΠΈ Π³Π»ΡƒΠ±ΠΈΠ½Ρ‹ рСкурсии ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π½Π° ΡˆΠ°Π³ 12.

5. Π˜Ρ‰Π΅ΠΌ Ρ‚ΠΎΡ‡ΠΊΡƒ пСрСсСчСния Π»ΡƒΡ‡Π° с Π±Π»ΠΈΠΆΠ°ΠΉΡˆΠΈΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ.

6. Π’ΠΎΡ‡ΠΊΠ° Π½Π°ΠΉΠ΄Π΅Π½Π°?

А) НСт — устанавливаСм Ρ„ΠΎΠ½ΠΎΠ²ΡƒΡŽ ΠΈΠ½Ρ‚Π΅Π½ΡΠΈΠ²Π½ΠΎΡΡ‚ΡŒ пиксСла. ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π½Π° ΡˆΠ°Π³ 12.

Π‘) Π”Π° — Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅ΠΌ с ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ Π±Ρ‹Π»ΠΎ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ пСрСсСчСниС.

7. ΠŸΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Π΅ΠΌ всС источники освСщСния ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌ, Π»Π΅ΠΆΠΈΡ‚ Π»ΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ ΠΈ ΠΈΡΡ‚ΠΎΡ‡Π½ΠΈΠΊΠΎΠΌ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚.

А) ΠœΠ΅ΠΆΠ΄Ρƒ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ пСрСсСчСния ΠΈ ΠΈΡΡ‚ΠΎΡ‡Π½ΠΈΠΊΠΎΠΌ освСщСния Π»Π΅ΠΆΠΈΡ‚ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ — заносим Π½ΡƒΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ «shade».

Π‘) Π’ΠΎΡ‡ΠΊΠ° пСрСсСчСния Π½Π΅ ΠΏΠ΅Ρ€Π΅ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ся ΠΎΡ‚ ΠΈΡΡ‚ΠΎΡ‡Π½ΠΈΠΊΠ° освСщСния Π½ΠΈ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² — заносим Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ «shade» Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ «1».

8. Если Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ «shade» большС нуля — вычисляСм Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ‚Π΅Π½ΡΠΈΠ²Π½ΠΎΡΡ‚ΡŒ пиксСла. Под «Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΠΎΠΉ» ΠΈΠ½Ρ‚Π΅Π½ΡΠΈΠ²Π½ΠΎΡΡ‚ΡŒΡŽ понимаСтся ΠΈΠ½Ρ‚Π΅Π½ΡΠΈΠ²Π½ΠΎΡΡ‚ΡŒ с ΡƒΡ‡Ρ‘Ρ‚ΠΎΠΌ Π΄ΠΈΡ„Ρ„ΡƒΠ·Π½ΠΎ ΠΎΡ‚Ρ€Π°ΠΆΡ‘Π½Π½ΠΎΠ³ΠΎ свСта.

9. Если достигнута максимальная Π³Π»ΡƒΠ±ΠΈΠ½Π° рСкурсии, Ρ‚ΠΎ ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ интСнсивности ΠΎΡ‚Ρ€Π°ΠΆΡ‘Π½Π½ΠΎΠ³ΠΎ ΠΈ ΠΏΡ€Π΅Π»ΠΎΠΌΠ»Ρ‘Π½Π½ΠΎΠ³ΠΎ свСта Π½ΡƒΠ»Π΅Π²Ρ‹ΠΌΠΈ. ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π½Π° ΡˆΠ°Π³ 12. Π˜Π½Π°Ρ‡Π΅ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ шаг.

10. Если ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ свойствами Π·Π΅Ρ€ΠΊΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ отраТСния, Ρ‚ΠΎ Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΠ΅ΠΌ Π²Π΅ΠΊΡ‚ΠΎΡ€ ΠΎΡ‚Ρ€Π°ΠΆΡ‘Π½Π½ΠΎΠ³ΠΎ Π»ΡƒΡ‡Π°. Запуск рСкурсии для нахоТдСния интСнсивности ΠΎΡ‚Ρ€Π°ΠΆΡ‘Π½Π½ΠΎΠ³ΠΎ Π»ΡƒΡ‡Π° (ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π½Π° ΡˆΠ°Π³ 3).

11. Если ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ свойствами прСломлСния, Ρ‚ΠΎ Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΠ΅ΠΌ Π²Π΅ΠΊΡ‚ΠΎΡ€ ΠΏΡ€Π΅Π»ΠΎΠΌΠ»Ρ‘Π½Π½ΠΎΠ³ΠΎ Π»ΡƒΡ‡Π°. Запуск рСкурсии для нахоТдСния интСнсивности ΠΏΡ€Π΅Π»ΠΎΠΌΠ»Ρ‘Π½Π½ΠΎΠ³ΠΎ Π»ΡƒΡ‡Π° (ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π½Π° ΡˆΠ°Π³ 3).

12. ВозвращаСмся Π² Ρ‚ΠΎΡ‡ΠΊΡƒ Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ опрСдСлСния интСнсивности пиксСла.

Если ΡˆΡ‘Π» расчёт ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½ΠΎΠ³ΠΎ Π»ΡƒΡ‡Π°, Ρ‚ΠΎ Π² Π±ΡƒΡ„Π΅Ρ€ ΠΊΠ°Π΄Ρ€Π° ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅ΠΌ пиксСл вычислСнного Ρ†Π²Π΅Ρ‚Π°. Если ΠΈΠ½Ρ‚Π΅Π½ΡΠΈΠ²Π½ΠΎΡΡ‚ΡŒ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ, Ρ‚ΠΎ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ‚Π΅Π½ΡΠΈΠ²Π½ΠΎΡΡ‚ΡŒ. ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ пиксСлу (шаг 1).

Π³Ρ€Π°Ρ„ΠΈΠΊΠ° модСль ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Ρ‹ΠΉ ΠΎΡ‚Ρ€Π°ΠΆΠ°ΡŽΡ‰ΠΈΠΉ.

2.5 ВычислСниС Π½ΠΎΡ€ΠΌΠ°Π»Π΅ΠΉ Π’ Π΄Π°Π½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅ присутствуСт Π΄Π²Π° Π²ΠΈΠ΄Π° ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π² ΠΏΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠΈ сцСны. Π­Ρ‚ΠΎ ΠΏΠΎΠ»ΠΈΠ³ΠΎΠ½ (Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ) ΠΈ ΡΠ»Π»ΠΈΠΏΡΠΎΠΈΠ΄.

2.5.1 ВычислСниС Π½ΠΎΡ€ΠΌΠ°Π»ΠΈ ΠΊ ΠΏΠΎΠ»ΠΈΠ³ΠΎΠ½Ρƒ Π’Π΅ΠΊΡ‚ΠΎΡ€Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ — это Π²Π΅ΠΊΡ‚ΠΎΡ€ пСрпСндикулярный ΠΊ ΠΏΠ»ΠΎΡΠΊΠΎΡΡ‚ΠΈ, которая образуСтся двумя Π²Π΅ΠΊΡ‚ΠΎΡ€Π°ΠΌΠΈ. Π’ ΡΠ»ΡƒΡ‡Π°Π΅ Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°, Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π²Π΅ΠΊΡ‚ΠΎΡ€Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΊ Π΄Π²ΡƒΠΌ Π΅Π³ΠΎ сторонам Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ²Π»ΡΡ‚ΡŒΡΡ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΡŽ. Достаточно Π½Π°ΠΉΡ‚ΠΈ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·, ΠΏΡ€ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ сцСны, Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡ‚ΡŒ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· Π½Π΅Ρ‚ смысла, Ρ‚.ΠΊ. Π² Π»ΡŽΠ±ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠ΅ Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ° Π½ΠΎΡ€ΠΌΠ°Π»ΠΈ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹, ΠΈ ΡΡ‚ΠΎ сократит Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π·Π°Ρ‚Ρ€Π°Ρ‚Ρ‹.

ΠŸΡƒΡΡ‚ΡŒ Π·Π°Π΄Π°Π½ Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ ABC ΠΈ ΠΌΡ‹ Π·Π½Π°Π΅ΠΌ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ всСх Π΅Π³ΠΎ Π²Π΅Ρ€ΡˆΠΈΠ½.

Вычислим ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Π΄Π²ΡƒΡ… Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠ² AB ΠΈ AC:

XAB = XB — XA.

YAB = XB — XA.

ZAB = XB — XA (2.4).

XAC = XC — XA.

YAC = XC — XA.

ZAC = XC — XA.

Найдём Π²Π΅ΠΊΡ‚ΠΎΡ€Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠ²: N = ABxAC.

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ Π²Π΅ΠΊΡ‚ΠΎΡ€ Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΡƒΠ΅ΠΌ. ΠšΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π²Π΅ΠΊΡ‚ΠΎΡ€Π°, Π±ΡƒΠ΄Ρƒ ΡΠ²Π»ΡΡ‚ΡŒΡΡ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌΠΈ Π½ΠΎΡ€ΠΌΠ°Π»ΠΈ ΠΊ ΠΏΠΎΠ»ΠΈΠ³ΠΎΠ½Ρƒ:

Xn = YABZAC — YACZAB.

Yn = XABZAC — XACZAB (2.5).

Zn = XABYAC — XACYAB.

2.5.2 ВычислСниС Π½ΠΎΡ€ΠΌΠ°Π»ΠΈ ΠΊ ΡΡ„Π΅Ρ€Π΅ Π² Π·Π°Π΄Π°Π½Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠ΅ Для вычислСния Π½ΠΎΡ€ΠΌΠ°Π»ΠΈ ΠΊ Ρ‚ΠΎΡ‡ΠΊΠ΅ Π½Π° ΡΡ„Π΅Ρ€Π΅, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹Ρ‡Π΅ΡΡ‚ΡŒ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Ρ†Π΅Π½Ρ‚Ρ€Π° сфСры, ΠΈΠ· ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ Ρ‚ΠΎΡ‡ΠΊΠΈ поиска.

Nx = Px — Ox,.

Ny = Py — Oy,.

Nz = Pz — Oz,.

Π³Π΄Π΅ N — Π²Π΅ΠΊΡ‚ΠΎΡ€ Π½ΠΎΡ€ΠΌΠ°Π»ΠΈ, P — Ρ‚ΠΎΡ‡ΠΊΠ° ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π½Π°Π΄ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒ, O — Ρ†Π΅Π½Ρ‚Ρ€ сфСры.

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ Π²Π΅ΠΊΡ‚ΠΎΡ€ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ. ПодСлим Π²Π΅ΠΊΡ‚ΠΎΡ€ N Π½Π° Ρ€Π°Π΄ΠΈΡƒΡ сфСры.

Π’ ΠΈΡ‚ΠΎΠ³Π΅ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒ ΠΊ ΡΡ„Π΅Ρ€Π΅ Π² Π·Π°Π΄Π°Π½Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠ΅.

2.6 Поиск пСрСсСчСния с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ Π’Π°ΠΆΠ½Π΅ΠΉΡˆΠ΅ΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ трассировки Π»ΡƒΡ‡Π΅ΠΉ являСтся ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ пСрСсСчСния. Бпособ опрСдСлСния Ρ‚ΠΎΡ‡ΠΊΠΈ пСрСсСчСния зависит ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΎΠΉ это ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΈ ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΎΠ½ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½. Для ускорСния поиска пСрСсСчСния рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΎΠ±ΠΎΠ»ΠΎΡ‡Π΅ΠΊ. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ помСщаСтся Π² ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΡƒ, Π½Π°Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ пСрСсСчСния с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ быстрСС, Ρ‡Π΅ΠΌ с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ. НапримСр, Π² ΡΡ„Π΅Ρ€Ρƒ. Если Π»ΡƒΡ‡ пСрСсёк ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΡƒ, Ρ‚ΠΎ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‡Ρ‚ΠΎ этот Π»ΡƒΡ‡ пСрСсСчёт ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. НСобходимо ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ поиск пСрСсСчСния Π»ΡƒΡ‡Π° с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ.

Π›ΡŽΠ±Π°Ρ Ρ‚ΠΎΡ‡ΠΊΠ° Π»ΡƒΡ‡Π° удовлСтворяСт ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ:

R = A+Vt, (2.11).

Π³Π΄Π΅ Rрадиус-Π²Π΅ΠΊΡ‚ΠΎΡ€ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ, ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰Π΅ΠΉ Π»ΡƒΡ‡Ρƒ, A — радиус-Π²Π΅ΠΊΡ‚ΠΎΡ€ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ Π»ΡƒΡ‡Π°, V — Π²Π΅ΠΊΡ‚ΠΎΡ€ направлСния Π»ΡƒΡ‡Π°, t — ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€.

2.6.1 Поиск пСрСсСчСния с ΠΏΠΎΠ»ΠΈΠ³ΠΎΠ½ΠΎΠΌ Поиск пСрСсСчСния с Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠΌ состоит ΠΈΠ· Π΄Π²ΡƒΡ… этапов: поиск пСрСсСчСния Π»ΡƒΡ‡Π° с ΠΏΠ»ΠΎΡΠΊΠΎΡΡ‚ΡŒΡŽ Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ° ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ нахоТдСния Ρ‚ΠΎΡ‡ΠΊΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π½Π΅Π³ΠΎ.

Π—Π°ΠΏΠΈΡˆΠ΅ΠΌ ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠ΅ плоскости:

Q (x, y, z) = Ax + By + Cz +D = 0. (2.12).

ΠšΠΎΡΡ„Ρ„ΠΈΡ†ΠΈΠ΅Π½Ρ‚Ρ‹ A, B, C ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚ с ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌΠΈ Π½ΠΎΡ€ΠΌΠ°Π»ΠΈ ΠΊ ΡΡ‚ΠΎΠΉ плоскости. ΠšΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Π½ΠΎΡ€ΠΌΠ°Π»ΠΈ плоскости ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚ с ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌΠΈ Π½ΠΎΡ€ΠΌΠ°Π»ΠΈ Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°. ΠΠΎΡ€ΠΌΠ°Π»ΡŒ Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ° Π±Ρ‹Π»Π° рассчитана ΠΏΡ€ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ сцСны.

Π’Ρ‹Ρ€Π°Π·ΠΈΠΌ свободный Ρ‡Π»Π΅Π½ D:

D = -AxBy — Cz (2.13).

Π’Π΅ΠΏΠ΅Ρ€ΡŒ для нахоТдСния свободного Ρ‡Π»Π΅Π½Π° D Π΄ΠΎΡΡ‚Π°Ρ‚ΠΎΡ‡Π½ΠΎ ΠΏΠΎΠ΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ любой Ρ‚ΠΎΡ‡ΠΊΠΈ Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°. НапримСр, Π»ΡŽΠ±ΡƒΡŽ ΠΈΠ· Π²Π΅Ρ€ΡˆΠΈΠ½.

По Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ с Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΡŽ Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°, свободный Ρ‡Π»Π΅Π½ Π² Ρ…ΠΎΠ΄Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ‚ся, поэтому вычисли Π΅Π³ΠΎ ΠΏΡ€ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ сцСна. ΠŸΠ΅Ρ€Π΅ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ полоТСния Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ для нахоТдСния Ρ‚ΠΎΡ‡ΠΊΠΈ пСрСсСчСния подставим уравнСния Π»ΡƒΡ‡Π° (2.11) Π².

ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠ΅ плоскости (2.12):

A (x1 + at) + B (y1 + bt) + C (z1 + ct) + D = 0 (2.14).

Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ:

t = - (Ax1 + By1 + Cz1 + D) / (Aa + Bb + Cc) (2.15).

Если Π·Π½Π°ΠΌΠ΅Π½Π°Ρ‚Π΅Π»ΡŒ Π΄Ρ€ΠΎΠ±ΠΈ Ρ€Π°Π²Π΅Π½ Π½ΡƒΠ»ΡŽ, Π·Π½Π°Ρ‡ΠΈΡ‚ Π»ΡƒΡ‡ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»Π΅Π½ плоскости, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π»Π΅ΠΆΠΈΡ‚ Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‚ΠΎΡ‡ΠΊΠΈ пСрСсСчСния Π½Π΅Ρ‚.

Π˜Π½Π°Ρ‡Π΅, для нахоТдСния ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ Ρ‚ΠΎΡ‡ΠΊΠΈ пСрСсСчСния Π½Π°Π΄ΠΎ ΠΏΠΎΠ΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π½Π°ΠΉΠ΄Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° t Π² ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠ΅ Π»ΡƒΡ‡Π° (2.11). НазовСм Ρ‚ΠΎΡ‡ΠΊΡƒ пСрСсСчСния D. ΠœΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ xD, yD, zD.

НСобходимо ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΏΠΎΠΏΠ°Π»Π° Π»ΠΈ Ρ‚ΠΎΡ‡ΠΊΠ° D Π²Π½ΡƒΡ‚Ρ€ΡŒ Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°. НайдСм ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠ² AB, BC, CA ΠΈ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠ² AD, BD, CD.

ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ Ρ‚Ρ€ΠΈ Π²Π΅ΠΊΡ‚ΠΎΡ€Ρ‹Ρ… произвСдСния:

na = AB x AD,.

nb = BC x BD, (2.16).

nc= CA x CD.

Если всС Ρ‚Ρ€ΠΈ Π²Π΅ΠΊΡ‚ΠΎΡ€Π° сонаправлСны, Ρ‚ΠΎ Ρ‚ΠΎΡ‡ΠΊΠ° D Π»Π΅ΠΆΠΈΡ‚ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°.

Для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½Π° ΡΠΎΠ½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½ΠΎΡΡ‚ΡŒ, провСряСт Π·Π½Π°ΠΊΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ всСх Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠ².

Π”Π°Π½Π½Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ускорСн Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ тСстами. Одним ΠΈΠ· Ρ‚Π°ΠΊΠΈΡ… тСсов являСтся Π³Π°Π±Π°Ρ€ΠΈΡ‚Π½Ρ‹ΠΉ тСст. НСобходимо ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π»Π΅ΠΆΠΈΡ‚ Π»ΠΈ проСкция Ρ‚ΠΎΡ‡ΠΊΠΈ D Π»Π΅Π²Π΅Π΅, ΠΏΡ€Π°Π²Π΅Π΅, Π²Ρ‹ΡˆΠ΅ ΠΈΠ»ΠΈ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ†ΠΈΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°. Если Π΄Π°, Ρ‚ΠΎ Ρ‚ΠΎΡ‡ΠΊΠ° D Π»Π΅ΠΆΠΈΡ‚ снаруТи.

2.6.2 Поиск пСрСсСчСния со ΡΡ„Π΅Ρ€ΠΎΠΉ Для нахоТдСния Ρ‚ΠΎΡ‡ΠΊΠΈ пСрСсСчСния Π»ΡƒΡ‡Π°, Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠ΅ΠΌ.

R = A + Vt, (2.17).

ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² Π²ΠΈΠ΄Π΅:

x = x1+at,.

y = y1+bt, (2.18).

z = z1+ct.

со ΡΡ„Π΅Ρ€ΠΎΠΉ, Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠ΅ΠΌ:

(x-x0)2 +(y-y0)2+(z-z0)2 = r2 (2.19).

Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠ΅ сфСры вмСсто x, y ΠΈ z ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ уравнСния Π»ΡƒΡ‡Π°. ПослС раскрытия всСх скобок ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½ΠΎΠ΅ ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠ΅ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° t.

Если дискриминант ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ уравнСния мСньшС нуля, Ρ‚ΠΎ Π»ΡƒΡ‡ ΠΈ ΠΏΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΡŒ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ порядка ΠΎΠ±Ρ‰ΠΈΡ… Ρ‚ΠΎΡ‡Π΅ΠΊ пСрСсСчСния Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ Π΄Π²Π° значСния ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° t. Дискриминант ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π²Π΅Π½ Π½ΡƒΠ»ΡŽ — это соотвСтствуСт ΠΏΡ€Π΅Π΄Π΅Π»ΡŒΠ½ΠΎΠΌΡƒ ΡΠ»ΡƒΡ‡Π°ΡŽ касания Π»ΡƒΡ‡Π° повСрхности, ΠΈ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Π΄Π²Π° ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΡ… значСния ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° t.

Для нахоТдСния ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ Ρ‚ΠΎΡ‡Π΅ΠΊ пСрСсСчСния Π»ΡƒΡ‡Π° ΠΈ ΠΏΠΎΠ²Π΅Ρ€Ρ…ности достаточно ΠΏΠΎΠ΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹Π΅ значСния ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° t Π² ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΡ Π»ΡƒΡ‡Π° (2.17).

Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΏΡ€ΠΈ Π½Π°Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠΈ Π΄Π²ΡƒΡ… пСрСсСчСний для Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ выбираСтся Π±Π»ΠΈΠΆΠ½Π΅Π΅ ΠΈΠ· Π½ΠΈΡ…. Π‘Π»ΠΈΠΆΠ½Π΅Π΅ пСрСсСчСниС опрСдСляСтся ΠΏΡƒΡ‚Π΅ΠΌ сравнСния Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² t. Π‘Π»ΠΈΠΆΠ΅ ΠΊ Ρ‚ΠΎΡ‡ΠΊΠ΅ наблюдСния находится Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅ΡΠ΅Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ соотвСтствуСт мСньший ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ t.

Если ΠΎΠ΄Π½ΠΎ ΠΈΠ»ΠΈ ΠΎΠ±Π° значСния ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° t ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈΡΡŒ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ, это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρ‚ΠΎΡ‡ΠΊΠ° пСрСсСчСния Π»Π΅ΠΆΠΈΡ‚ «ΡΠ·Π°Π΄ΠΈ» ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‚ΠΎΡ‡ΠΊΠΈ Π½Π°Ρ‡Π°Π»Π° Π»ΡƒΡ‡Π°, Π½Π° ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π΅ прямой, находящСйся «ΠΏΠΎ Π½Π°ΡˆΡƒ сторону» ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Π½ΠΎΠΉ плоскости. Π’Π°ΠΊΠΈΠ΅ Ρ‚ΠΎΡ‡ΠΊΠΈ ΠΏΡ€ΠΈ поискС пСрСсСчСния ΠΎΡ‚Π±Ρ€Π°ΡΡ‹Π²Π°ΡŽΡ‚ΡΡ.

3. ВСхнологичСская Ρ‡Π°ΡΡ‚ΡŒ.

3.1 Π’Ρ‹Π±ΠΎΡ€ языка программирования Для выполнСния Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π±Ρ‹Π» Π²Ρ‹Π±Ρ€Π°Π½ язык C++ Π² ΡΡ€Π΅Π΄Π΅ программирования Microsoft Visual Studio 2010 с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ CLR.

Π―Π·Ρ‹ΠΊ являСтся Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΈΠΌ ΠΈ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ слоТных Π·Π°Π΄Π°Ρ‡.

Π‘++ прСдоставляСт Π½Π°ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ ряд шаблонов ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, ΡƒΡΠΊΠΎΡ€ΡΡŽΡ‰ΠΈΡ… Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π°Π΄ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ°ΡŽΡ‰ΠΈΡ… ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ².

Π‘Ρ€Π΅Π΄Π° MSVS являСтся ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΎΡΠ½ΠΎΠ²Π½Ρ‹Ρ… срСд Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π° ΡΠ·Ρ‹ΠΊΠΈ C. ОбновлСния, тСхничСская ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ°, Π½Π°Π΄Ρ‘ΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈ ΡƒΠ΄ΠΎΠ±ΡΡ‚Π²ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρ‹ — основныС ΠΏΠ»ΡŽΡΡ‹ Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹Π±ΠΎΡ€Π°.

3.2 Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

3.2.1 Бписок ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Form1 — Ρ„Π°ΠΉΠ» Ρ„ΠΎΡ€ΠΌΡ‹ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°. Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ класса Ρ„ΠΎΡ€ΠΌΡ‹, ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΈΠ½Ρ‚СрфСйсом.

Common — содСрТит константы ΠΈ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ структуры Π΄Π°Π½Π½Ρ‹Ρ….

MyMath — Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π²Π΅ΠΊΡ‚ΠΎΡ€Π°ΠΌΠΈ.

Scene — содСрТит описаниС сцСны, ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ сцСны, ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ для добавлСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², поиска пСрСсСчСний, поиска Π½ΠΎΡ€ΠΌΠ°Π»Π΅ΠΉ.

Primitives — содСрТит описаниС ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²ΠΎΠ² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π½ΠΈΠΌΠΈ.

Raytracer — содСрТит основной Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ — «ΠΎΠ±Ρ€Π°Ρ‚Π½ΡƒΡŽ трассировку Π»ΡƒΡ‡Π΅ΠΉ», Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ‚ΠΈΠΏΠΎΠΌ «Π›ΡƒΡ‡», ΠΊΠ°ΠΌΠ΅Ρ€Ρƒ ΠΈ Π΅Ρ‘ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹.

3.2.2 Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρ‹ ΠΈ ΠΊΠ»Π°ΡΡΡ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

struct Col — описываСт Ρ†Π²Π΅Ρ‚ ΠΏΠΎ Ρ‚Ρ€Ρ‘ΠΌ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΌ (RGB).

struct Cord — описываСт ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρƒ Π² Ρ‚Ρ€Ρ‘Ρ…ΠΌΠ΅Ρ€Π½ΠΎΠΌ пространствС (x, y, z).

class vector3 — описываСт Π²Π΅ΠΊΡ‚ΠΎΡ€ Ρ‚Ρ€Ρ‘Ρ…ΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ пространства ΠΈ ΠΎΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π½ΠΈΠΌ.

class Material — описываСт ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Π΅Π³ΠΎ основныС свойства ΠΈ Ρ†Π²Π΅Ρ‚.

class Light — ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для описания источников освСщСния. Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ источника ΠΈ Ρ†Π²Π΅Ρ‚ излучСния.

class Vertex — описываСт Π²Π΅Ρ€ΡˆΠΈΠ½Ρƒ Π² Ρ‚Ρ€Ρ‘Ρ…ΠΌΠ΅Ρ€Π½ΠΎΠΌ пространствС.

class Primitive — Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ класс, Ρ…Ρ€Π°Π½ΠΈΡ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈ ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΡ‹ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½Π° ΠΏΠ΅Ρ€Π΅ΡΠ΅Ρ‡Π΅Π½ΠΈΡ ΠΈ ΠΏΠΎΠΈΡΠΊΠΈ Π½ΠΎΡ€ΠΌΠ°Π»ΠΈ.

class Trian — описываСт ΠΏΠΎΠ»ΠΈΠ³ΠΎΠ½ (Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ). ΠŸΠΎΡ‚ΠΎΠΌΠΎΠΊ класса Primitive. Π₯Ρ€Π°Π½ΠΈΡ‚ Ρ‚Ρ€ΠΈ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ ΠΈ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Π½ΠΎΡ€ΠΌΠ°Π»ΠΈ. ΠžΠ±Π»Π°Π΄Π°Π΅Ρ‚ собствСнными ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½Π° ΠΏΠ΅Ρ€Π΅ΡΠ΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΠΈΡΠΊΠ° Π½ΠΎΡ€ΠΌΠ°Π»ΠΈ.

class Sphere — описываСт сфСру. ΠŸΠΎΡ‚ΠΎΠΌΠΎΠΊ класса Primitive. Π₯Ρ€Π°Π½ΠΈΡ‚ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Ρ†Π΅Π½Ρ‚Ρ€Π° ΠΈ Ρ€Π°Π΄ΠΈΡƒΡ. ΠžΠ±Π»Π°Π΄Π°Π΅Ρ‚ собствСнными ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½Π° ΠΏΠ΅Ρ€Π΅ΡΠ΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΠΈΡΠΊΠ° Π½ΠΎΡ€ΠΌΠ°Π»ΠΈ.

class Scene — описываСт сцСну. Π₯Ρ€Π°Π½ΠΈΡ‚ количСство ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²ΠΎΠ², количСство источников освСщСния, ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ Π½Π° ΠΌΠ°ΡΡΠΈΠ²Ρ‹ Π²Π΅Ρ€ΡˆΠΈΠ½, ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²ΠΎΠ² ΠΈ ΠΈΡΡ‚ΠΎΡ‡Π½ΠΈΠΊΠΎΠ² освСщСния.

class Engine — основной класс ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ трассировки Π»ΡƒΡ‡Π΅ΠΉ, поиска пСрСсСчСния.

class Ray — описываСт Π»ΡƒΡ‡. Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ доступа ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ полоТСния ΠΈ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡ.

3.3 ОписаниС интСрфСйса ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Основной Π²ΠΈΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:

Рис. 3.1.

Π“Π»Π°Π²Π½ΠΎΠ΅ мСню ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡƒΠ½ΠΊΡ‚Ρ‹:

Π“Π»Π°Π²Π½ΠΎΠ΅ мСню.

Рис. 3.2.

А) «Πž ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅» — содСрТит ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ΅.

Π‘) «Π’Ρ‹Ρ…ΠΎΠ΄» — осущСствляСт Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Основной интСрфСйс сосрСдоточСн нСпосрСдствСнно Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅.

Π’ΠΊΠ»Π°Π΄ΠΊΠ° «Π“рафичСский интСрфСйс»:

Рис. 3.3.

ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ Π½Π°ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ ΠΏΠΎ ΡΡ†Π΅Π½Π΅, ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚ ΠΏΠΎ Π΄Π²ΡƒΠΌ осям ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ высоту, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ находится ΠΊΠ°ΠΌΠ΅Ρ€Π°. ΠŸΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ любого ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° начинаСтся гСнСрация Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ°Π΄Ρ€Π°. На ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π½Π°Π»ΠΎΠΆΠ΅Π½Ρ‹ ограничСния Π½Π° ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠ΅ значСния. Π­Ρ‚ΠΎ сдСлано для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π΅ ΡƒΡˆΡ‘Π» Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ сцСны ΠΈ ΡΡ‚ΠΎ Π½Π΅ Π²Ρ‹Π·Π²Π°Π»ΠΎ ошибок пСрСполнСния.

Π’ΠΊΠ»Π°Π΄ΠΊΠ° «Π ΡƒΡ‡Π½ΠΎΠΉ Π²Π²ΠΎΠ΄»:

Рис. 3.4.

ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ Π½Π°ΠΌ быстрСй ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ Π½ΡƒΠΆΠ½Ρ‹ΠΌ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌ. Для удобства ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ выводятся Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹. Кнопка «Π Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³» — Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΡŽ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ°Π΄Ρ€Π°.

ΠŸΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π½Π° ΡΡ‚Ρƒ ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‚ΡΡ всС Π²Π²Π΅Π΄Ρ‘Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅. Π’ ΡΠ»ΡƒΡ‡Π°Π΅ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π° выдаётся ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅. Π’Π²Π΅Π΄Π΅Π½Ρ‹ ограничСния Π½Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΡ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚. Π­Ρ‚ΠΎ сдСлано для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π΅ ΡƒΡˆΡ‘Π» Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ сцСны ΠΈ Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΎ ошибок пСрСполнСния.

НиТС холста (picturebox), Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ отобраТаСтся ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, располагаСтся информация ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ изобраТСния:

Рис. 3.5.

Π’ ΡΠ°ΠΌΠΎΠΌ Π½ΠΈΠ·Ρƒ ΠΎΠΊΠ½Π° располоТСн прогрСсс Π±Π°Ρ€, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‰ΠΈΠΉ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ статус Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ изобраТСния.

Рис. 3.6.

4. Π˜ΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠ°Ρ Ρ‡Π°ΡΡ‚ΡŒ ИсслСдованиС ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ с ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠ΅ΠΉ:

Intel Core i5−2400, 3.1 GHz.

AMD Radeon HD 6900M Series.

4Gb RAM.

Windows 7 64x.

Π‘Ρ‹Π»Π° исслСдована Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ скорости Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΊΠ°Π΄Ρ€Π° ΠΎΡ‚ ΡΡ„Ρ„Π΅ΠΊΡ‚Π°. ГСнСрировался ΠΊΠ°Π΄Ρ€ со ΡΡ„Π΅Ρ€ΠΎΠΉ ΠΈ Π·Π°Π΄Π½ΠΈΠΌ Ρ„ΠΎΠ½ΠΎΠΌ. Бвойства сфСры мСнялись Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΎΠΏΡ‹Ρ‚Π΅, Π½ΠΎ Π΅Ρ‘ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡΡ‚Π°Π²Π°Π»ΠΈΡΡŒ постоянными. Π’ ΠΈΡ‚ΠΎΠ³Π΅ Π±Ρ‹Π»ΠΎ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΎ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ ΠΎΠΏΡ‹Ρ‚Π°:

О1 — ΠΎΠΏΡ‹Ρ‚ Π±Π΅Π· использования отраТСния ΠΈ ΠΏΡ€Π΅Π»ΠΎΠΌΠ»Π΅Π½ΠΈΡ.

О2 — ΠΎΠΏΡ‹Ρ‚ с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ отраТСния.

О3 — ΠΎΠΏΡ‹Ρ‚ с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ прСломлСния.

О4 — ΠΎΠΏΡ‹Ρ‚ с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ прСломлСния ΠΈ ΠΎΡ‚раТСния.

Π‘Π΅Π· использования эффСктов: ΠžΡ‚Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅:.

Рис. 4.1 Рис. 4.2.

ΠŸΡ€Π΅Π»ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅: ΠŸΡ€Π΅Π»ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΈ ΠΎΡ‚Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅:.

Рис. 4.3 Рис. 4.4.

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΠΏΡ‹Ρ‚ повторялся нСсколько Ρ€Π°Π·.

β„–.

Π‘Ρ€Π΅Π΄Π½Π΅Π΅.

О1.

4.6 с.

4.4с.

4.5с.

4.4с.

4.5с.

О2.

5.0с.

4.8с.

4.8с.

5.1с.

4.9с.

О3.

5.5с.

5.2с.

5.2с.

5.3с.

5.3с.

О4.

11.3с.

11.1с.

11.2с.

11.0с.

11.1с.

Из Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² экспСримСнтов слСдуСт, Ρ‡Ρ‚ΠΎ использованиС ΠΎΠ±ΠΎΠΈΡ… эффСктов (прСломлСния ΠΈ ΠΎΡ‚раТСния), замСдляСт Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΡŽ ΠΊΠ°Π΄Ρ€Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Π² 2,5 Ρ€Π°Π·Π°.

Алгоритм ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ трассировки — ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ, Π° ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ отраТСния ΠΈΠ»ΠΈ прСломлСния ΠΎΠ½ ΡΡ‚ановится Π΅Ρ‰Ρ‘ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅. ΠžΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ для получСния рСалистичного изобраТСния.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’ Ρ…ΠΎΠ΄Π΅ выполнСния Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π±Ρ‹Π» ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ трассировки Π»ΡƒΡ‡Π΅ΠΉ. Π”Π°Π½Π½Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ» Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΠΎΡΡ‚Π°Π²Π»Π΅Π½Π½ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ. А ΠΈΠΌΠ΅Π½Π½ΠΎ: Π±Ρ‹Π»ΠΈ построСны ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ со ΡΠ²ΠΎΠΉΡΡ‚Π²Π°ΠΌΠΈ прСломлСния ΠΈ ΠΎΡ‚раТСния, Π±Ρ‹Π»ΠΎ использовано Π½Π°Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ‚Π΅Π½Π΅ΠΉ, Π±Ρ‹Π»Π° создана ΠΊΠ°ΠΌΠ΅Ρ€Π°, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ ΠΈ ΠΏΠΎΠ²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ.

Алгоритм ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ трассировки Π»ΡƒΡ‡Π΅ΠΉ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ большими Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π·Π°Ρ‚Ρ€Π°Ρ‚Π°ΠΌΠΈ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ изобраТСния Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.

Однако Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ являСтся ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятным, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΠΎ Π·Π°ΠΊΠΎΠ½Π°ΠΌ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΌΠΈΡ€Π° — ΠΏΠΎ Π·Π°ΠΊΠΎΠ½Π°ΠΌ Ρ„ΠΈΠ·ΠΈΠΊΠΈ. Врассировка Π»ΡƒΡ‡Π΅ΠΉ являСтся ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ высокого качСства. ИмСнно ΠΈΠ·-Π·Π° этих качСств Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΎΡ‡Π΅Π½ΡŒ популярСн ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π΅Π³ΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΡƒΡŽΡ‚ΡΡ постоянно.

1. Π”. РодТСрс, Π”ΠΆ. Адамс «ΠœΠ°Ρ‚СматичСскиС основы машинной Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ» — М: ΠΈΠ·Π΄Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ «ΠœΠΈΡ€», 2001. — 277с.

2. ΠŸΠΎΡ€Π΅Π² Π’. Н. «ΠšΠΎΠΌΠΏΡŒΡŽΡ‚Срная Π³Ρ€Π°Ρ„ΠΈΠΊΠ°» — Π‘ΠŸΠ‘: ΠΈΠ·Π΄Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ «Π‘Π₯Π’-ΠŸΠ΅Ρ‚Π΅Ρ€Π±ΡƒΡ€Π³», 2002. — 432с.

3. Π›Π°ΠΌΠΎΡ‚ А. «ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚Ρ€Ρ‘Ρ…ΠΌΠ΅Ρ€Π½Ρ‹Ρ… ΠΈΠ³Ρ€ для Windows. Π‘ΠΎΠ²Π΅Ρ‚Ρ‹ профСссионалов ΠΏΠΎ Ρ‚Ρ€Ρ‘Ρ…ΠΌΠ΅Ρ€Π½ΠΎΠΉ Π³Ρ€Π°Ρ„ΠΈΠΊΠ΅ ΠΈ Ρ€Π°ΡΡ‚Π΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΠΈ» — М: ΠΈΠ·Π΄Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ Π΄ΠΎΠΌ «Π’ΠΈΠ»ΡŒΡΠΌΡ», 2004. — 1424с.

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ