На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! правила раздела Алгоритмы
1. Помните, что название темы должно хоть как-то отражать ее содержимое (не создавайте темы с заголовком ПОМОГИТЕ, HELP и т.д.). Злоупотребление заглавными буквами в заголовках тем ЗАПРЕЩЕНО.
2. При создании темы постарайтесь, как можно более точно описать проблему, а не ограничиваться общими понятиями и определениями.
3. Приводимые фрагменты исходного кода старайтесь выделять тегами code.../code
4. Помните, чем подробнее Вы опишете свою проблему, тем быстрее получите вразумительный совет
5. Запрещено поднимать неактуальные темы (ПРИМЕР: запрещено отвечать на вопрос из серии "срочно надо", заданный в 2003 году)
6. И не забывайте о кнопочках TRANSLIT и РУССКАЯ КЛАВИАТУРА, если не можете писать в русской раскладке :)
Модераторы: Akina, shadeofgray
Страницы: (2) [1] 2  все  ( Перейти к последнему сообщению )  
> Зеркальное отображение
    ребят, подскажите как сформировать зеркальное отображение. у меня есть массив треугольников, которые состовляют фигуру, которая находится к комнате. я их сортирую и получаю изображение. а надо еще сделать зеркало. т.е., например, пол является зеркалом.
    т.е. как-то что-то отразить и отсортировать, чтобы формировалось зеркальное отражение на полу.
    подскажите, как это сделать, плиз.
      http://forum.sources.ru/index.php?showtopic=374 smile.gif
      если пол в плоскости ху, а его z координата равна нулю, то z=-z для всех треугольников.
      а для общего случая - вычисляешь проекцию точки на нормаль к поверхности и тоже её делаешь отрицательной
      только если сия проекция и так отрицательна, то рисовать точку не надо smile.gif
      зы. ето потипу означает что отнимаешь от вектора его проекцию, умноженную на 2
      Сообщение отредактировано: wormball -
        спасибо за ответ. почитаю.
          ещё небольшое уточнение, на всякий пожарный. зеркало может находиться в любом месте пространства, а потому надо отнимать удвоенную разность проекций на нормаль твоего вектора и какойлибо точки зеркала.
          Цитата
          experimenter, 19.12.03, 20:14
          спасибо за ответ. почитаю.

          ты обратил внимание, в каком ето разделе? smile.gif
            Цитата

            ты обратил внимание, в каком ето разделе?

            да, обратил. спасибо. у нас модераторы любят поколбасится и переместить тему. biggrin.gif
            Цитата

            если пол в плоскости ху, а его z координата равна нулю, то z=-z для всех треугольников.

            кстати, симметричное отображение не катит, так там выполняются не все законы физики, например, может быть видна грань, которая, на самом деле, в зеркало лучей отражать не может.
            вот можешь посмотреть мое творчество. там иногда бутылки поворачиваются горлышком к зеркалом, и дно видно не должно быть.там, кстати, можно на бутылки кликать. biggrin.gif rolleyes.gif

            Цитата

            ещё небольшое уточнение, на всякий пожарный. зеркало может находиться в любом месте пространства, а потому надо отнимать удвоенную разность проекций на нормаль твоего вектора и какой-либо точки зеркала.

            не очень понял от чего отнимать.

            Цитата

            а для общего случая - вычисляешь проекцию точки на нормаль к поверхности и тоже её делаешь отрицательной
            только если сия проекция и так отрицательна, то рисовать точку не надо

            вот это не понял абсолютно. как это спроецировать точку на нормаль? на прямую, направляющей которой является нормаль?
            Сообщение отредактировано: experimenter -

            Прикреплённый файлПрикреплённый файлBottles.zip (107.8 Кбайт, скачиваний: 257)
              да, кстати, бутылка просчитана в 3dsmaxе при помощи скрипта, данного мне albomом, за что ему огромная благодарность.
                Цитата
                experimenter, 20.12.03, 07:45
                да, обратил. спасибо. у нас модераторы любят поколбасится и переместить тему.

                помоему она изначально там была smile.gif
                Цитата
                experimenter, 20.12.03, 07:45
                кстати, симметричное отображение не катит, так там выполняются не все законы физики, например, может быть видна грань, которая, на самом деле, в зеркало лучей отражать не может.

                почему????
                Цитата
                не очень понял от чего отнимать.
                как это спроецировать точку на нормаль?

                ну потипу есь у тебя единичный вектор нормали. а проекция будет скалярным произведением проецируемого вектора на нормаль, и ещё умноженным на ету нормаль, чтобы получился вектор. вычисляешь таким способом две проекции и отнимаешь их от друг друга. а потом отнимаешь удвоенный полученный вектор от твоего исходного вектора.

                  Цитата

                  почему????

                  Ну, как почему? скачай аттач и посмотри, как там бутылки вертятся, там иногда дно не должно быть видно, а оно видно. посмотри внимательно, если не боишься вируса или еще чего. я уже на счет этого объяснял в предыдущем посте.
                    сколько ни смотрел, ничего неправильного не увидел.
                      ну, говорю же, когда дно бутыли повернуто к потолку, то оно иногда видно в зеркало, чего быть не может. посмотри подольше и повнимательнее.
                        да не видно там ничего!! ты хоть скриншот пришли
                          ну, вот смотри, у синей бутылки, которая вдали, видно дно, а оно видно быть не может, т.к. в зеркало лучей отражать никоим образом не может.
                          сейчас понятно или нет?
                          Прикреплённая картинка
                          Прикреплённая картинка
                            ты неправ!! так и должно быть! ты сам своей мозгой пораскинь, просто угол маленький, vot и получается, что видно дно
                            ежели не веришь, можешь в натуре взять бутылку и поставить её к зеркалу
                            Сообщение отредактировано: wormball -
                              ты чего? это ты не прав! я уже попробовал - и дно не видно. ты сам-то пробовал?
                              ты физику учил? там на зеркало лучей отражаться не может от этого дна. тебя эти соображения тоже не убеждают? люди, посмортите bottom.jpg и рассудите нас, пожалуйста.
                              Сообщение отредактировано: experimenter -
                                Цитата (experimenter @ 21.12.03, 03:57)
                                я уже попробовал - и дно не видно. ты сам-то пробовал?
                                ты физику учил? там на зеркало лучей отражаться не может от этого дна. тебя эти соображения тоже не убеждают? люди, посмортите bottom.jpg и рассудите нас, пожалуйста.

                                )))
                                бутылочка абсолютно правильно нарисована. и с физикой здесь все в порядке, (защищал диплом на кафедре теоретической физики). Просто дно отражается не в точках проекциях дна на плоскость, а посредине между стеклом монитора и самой бутылкой (если конечно глаз на уровне бутылки). т.е. простое z=-z и все! а видно дно или не видно - это будет уже зависеть от координаты x (ось X перпендикулярна плоскости стекла монитора), судя по тому, на рисунке отражение почти совпадает с оригиналом - координата x довольна большая. уменьшить x и дна видно не будет!
                                а насчет реального эксперимента - я тоже флакончик с клеем смотрел в зеркале - дно не видно. но стоит опустить глаз почти на уровень с плоскостью зеркала - дно видно!(можно правда не опускать, а взять зеркало несколько метровой длины, которого у меня нет).

                                когда я баловался с трехмерной графикой, для большей реалистичности - все переменные были не в пикселах, а в сантиметрах, и с учетом того что глаз от монитора на расстоянии 50 см. тогда с перспективой было все в порядке.
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,6591 ]   [ 15 queries used ]   [ Generated: 27.07.24, 00:08 GMT ]