Зеркальное отображение
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.164] |
|
|
правила раздела Алгоритмы

| Страницы: (2) [1] 2 все ( Перейти к последнему сообщению ) |
Зеркальное отображение
|
Сообщ.
#1
,
|
|
|
|
ребят, подскажите как сформировать зеркальное отображение. у меня есть массив треугольников, которые состовляют фигуру, которая находится к комнате. я их сортирую и получаю изображение. а надо еще сделать зеркало. т.е., например, пол является зеркалом.
т.е. как-то что-то отразить и отсортировать, чтобы формировалось зеркальное отражение на полу. подскажите, как это сделать, плиз. |
|
Сообщ.
#2
,
|
|
|
|
http://forum.sources.ru/index.php?showtopic=374
если пол в плоскости ху, а его z координата равна нулю, то z=-z для всех треугольников. а для общего случая - вычисляешь проекцию точки на нормаль к поверхности и тоже её делаешь отрицательной только если сия проекция и так отрицательна, то рисовать точку не надо зы. ето потипу означает что отнимаешь от вектора его проекцию, умноженную на 2 |
|
Сообщ.
#3
,
|
|
|
|
спасибо за ответ. почитаю.
|
|
Сообщ.
#4
,
|
|||
|
|
ещё небольшое уточнение, на всякий пожарный. зеркало может находиться в любом месте пространства, а потому надо отнимать удвоенную разность проекций на нормаль твоего вектора и какойлибо точки зеркала.
ты обратил внимание, в каком ето разделе? |
|
Сообщ.
#5
,
|
|||||||||
|
|
да, обратил. спасибо. у нас модераторы любят поколбасится и переместить тему.
кстати, симметричное отображение не катит, так там выполняются не все законы физики, например, может быть видна грань, которая, на самом деле, в зеркало лучей отражать не может. вот можешь посмотреть мое творчество. там иногда бутылки поворачиваются горлышком к зеркалом, и дно видно не должно быть.там, кстати, можно на бутылки кликать.
не очень понял от чего отнимать.
вот это не понял абсолютно. как это спроецировать точку на нормаль? на прямую, направляющей которой является нормаль? Прикреплённый файл Bottles.zip (107.8 Кбайт, скачиваний: 292)
|
|
Сообщ.
#6
,
|
|
|
|
да, кстати, бутылка просчитана в 3dsmaxе при помощи скрипта, данного мне albomом, за что ему огромная благодарность.
|
|
Сообщ.
#7
,
|
|||||||
|
|
помоему она изначально там была
почему????
ну потипу есь у тебя единичный вектор нормали. а проекция будет скалярным произведением проецируемого вектора на нормаль, и ещё умноженным на ету нормаль, чтобы получился вектор. вычисляешь таким способом две проекции и отнимаешь их от друг друга. а потом отнимаешь удвоенный полученный вектор от твоего исходного вектора. |
|
Сообщ.
#8
,
|
|||
|
|
Ну, как почему? скачай аттач и посмотри, как там бутылки вертятся, там иногда дно не должно быть видно, а оно видно. посмотри внимательно, если не боишься вируса или еще чего. я уже на счет этого объяснял в предыдущем посте. |
|
Сообщ.
#9
,
|
|
|
|
сколько ни смотрел, ничего неправильного не увидел.
|
|
Сообщ.
#10
,
|
|
|
|
ну, говорю же, когда дно бутыли повернуто к потолку, то оно иногда видно в зеркало, чего быть не может. посмотри подольше и повнимательнее.
|
|
Сообщ.
#11
,
|
|
|
|
да не видно там ничего!! ты хоть скриншот пришли
|
|
Сообщ.
#12
,
|
|
|
|
|
Сообщ.
#13
,
|
|
|
|
ты неправ!! так и должно быть! ты сам своей мозгой пораскинь, просто угол маленький, vot и получается, что видно дно
ежели не веришь, можешь в натуре взять бутылку и поставить её к зеркалу |
|
Сообщ.
#14
,
|
|
|
|
ты чего? это ты не прав! я уже попробовал - и дно не видно. ты сам-то пробовал?
ты физику учил? там на зеркало лучей отражаться не может от этого дна. тебя эти соображения тоже не убеждают? люди, посмортите bottom.jpg и рассудите нас, пожалуйста. |
|
Сообщ.
#15
,
|
|||
|
|
))) бутылочка абсолютно правильно нарисована. и с физикой здесь все в порядке, (защищал диплом на кафедре теоретической физики). Просто дно отражается не в точках проекциях дна на плоскость, а посредине между стеклом монитора и самой бутылкой (если конечно глаз на уровне бутылки). т.е. простое z=-z и все! а видно дно или не видно - это будет уже зависеть от координаты x (ось X перпендикулярна плоскости стекла монитора), судя по тому, на рисунке отражение почти совпадает с оригиналом - координата x довольна большая. уменьшить x и дна видно не будет! а насчет реального эксперимента - я тоже флакончик с клеем смотрел в зеркале - дно не видно. но стоит опустить глаз почти на уровень с плоскостью зеркала - дно видно!(можно правда не опускать, а взять зеркало несколько метровой длины, которого у меня нет). когда я баловался с трехмерной графикой, для большей реалистичности - все переменные были не в пикселах, а в сантиметрах, и с учетом того что глаз от монитора на расстоянии 50 см. тогда с перспективой было все в порядке. |