2 crystallize: тут нет булевых операций, просто сфера
http://cs-mapping.com.ua/forum/showthread.php?t=38428Дядя Миша said:Давай точную цитату, а я тебе объясню где ты понял меня неправильно.
Ну я в принципе понял, можно хранить 3 вертекса, а можно коэффициенты от уравнения плоскости.Отсюда же вытекает ответ, полагаю, на мучающий многих вопрос, почему формат map так странно устроен, вместо вертексов - какие-то плоскости. Подобная структура гораздо более удобна при разрезании не только на полигоны, но и на сложные геометрические фигуры, как в редакторе, так и при построении дерева.
Кому? Покежь.Дядя Миша said:Писал-писал, рассказывал-объяснял
Code:{ ( 48 496 73 ) ( 55 512 73 ) ( 41 503 66 ) +0~LIGHT1 [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1 ( 32 489 73 ) ( 48 496 73 ) ( 32 500 66 ) +0~LIGHT1 [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1 ( 16 496 73 ) ( 32 489 73 ) ( 23 503 66 ) +0~LIGHT1 [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1 ( 9 512 73 ) ( 16 496 73 ) ( 20 512 66 ) +0~LIGHT1 [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1 ( 16 528 73 ) ( 9 512 73 ) ( 23 521 66 ) +0~LIGHT1 [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1 ( 32 535 73 ) ( 16 528 73 ) ( 32 524 66 ) +0~LIGHT1 [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1 ( 48 528 73 ) ( 32 535 73 ) ( 41 521 66 ) +0~LIGHT1 [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1 ( 55 512 73 ) ( 48 528 73 ) ( 44 512 66 ) +0~LIGHT1 [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1 ( 53 491 84 ) ( 62 512 84 ) ( 48 496 73 ) +0~LIGHT1 [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1 ( 32 482 84 ) ( 53 491 84 ) ( 32 489 73 ) +0~LIGHT1 [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1 ( 11 491 84 ) ( 32 482 84 ) ( 16 496 73 ) +0~LIGHT1 [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1 ( 2 512 84 ) ( 11 491 84 ) ( 9 512 73 ) +0~LIGHT1 [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1 ( 11 533 84 ) ( 2 512 84 ) ( 16 528 73 ) +0~LIGHT1 [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1 ( 32 542 84 ) ( 11 533 84 ) ( 32 535 73 ) +0~LIGHT1 [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1 ( 53 533 84 ) ( 32 542 84 ) ( 48 528 73 ) +0~LIGHT1 [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1 ( 62 512 84 ) ( 53 533 84 ) ( 55 512 73 ) +0~LIGHT1 [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1 ( 55 489 96 ) ( 64 512 96 ) ( 53 491 84 ) +0~LIGHT1 [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1 ( 32 480 96 ) ( 55 489 96 ) ( 32 482 84 ) +0~LIGHT1 [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1 ( 9 489 96 ) ( 32 480 96 ) ( 11 491 84 ) +0~LIGHT1 [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1 ( 0 512 96 ) ( 9 489 96 ) ( 2 512 84 ) +0~LIGHT1 [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1 ( 9 535 96 ) ( 0 512 96 ) ( 11 533 84 ) +0~LIGHT1 [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1 ( 32 544 96 ) ( 9 535 96 ) ( 32 542 84 ) +0~LIGHT1 [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1 ( 55 535 96 ) ( 32 544 96 ) ( 53 533 84 ) +0~LIGHT1 [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1 ( 64 512 96 ) ( 55 535 96 ) ( 62 512 84 ) +0~LIGHT1 [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1 ( 53 491 108 ) ( 62 512 108 ) ( 55 489 96 ) +0~LIGHT1 [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1 ( 32 482 108 ) ( 53 491 108 ) ( 32 480 96 ) +0~LIGHT1 [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1 ( 11 491 108 ) ( 32 482 108 ) ( 9 489 96 ) +0~LIGHT1 [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1 ( 2 512 108 ) ( 11 491 108 ) ( 0 512 96 ) +0~LIGHT1 [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1 ( 11 533 108 ) ( 2 512 108 ) ( 9 535 96 ) +0~LIGHT1 [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1 ( 32 542 108 ) ( 11 533 108 ) ( 32 544 96 ) +0~LIGHT1 [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1 ( 53 533 108 ) ( 32 542 108 ) ( 55 535 96 ) +0~LIGHT1 [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1 ( 62 512 108 ) ( 53 533 108 ) ( 64 512 96 ) +0~LIGHT1 [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1 ( 48 496 119 ) ( 55 512 119 ) ( 53 491 108 ) +0~LIGHT1 [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1 ( 32 489 119 ) ( 48 496 119 ) ( 32 482 108 ) +0~LIGHT1 [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1 ( 16 496 119 ) ( 32 489 119 ) ( 11 491 108 ) +0~LIGHT1 [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1 ( 9 512 119 ) ( 16 496 119 ) ( 2 512 108 ) +0~LIGHT1 [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1 ( 16 528 119 ) ( 9 512 119 ) ( 11 533 108 ) +0~LIGHT1 [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1 ( 32 535 119 ) ( 16 528 119 ) ( 32 542 108 ) +0~LIGHT1 [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1 ( 48 528 119 ) ( 32 535 119 ) ( 53 533 108 ) +0~LIGHT1 [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1 ( 55 512 119 ) ( 48 528 119 ) ( 62 512 108 ) +0~LIGHT1 [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1 ( 41 503 126 ) ( 44 512 126 ) ( 48 496 119 ) +0~LIGHT1 [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1 ( 32 500 126 ) ( 41 503 126 ) ( 32 489 119 ) +0~LIGHT1 [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1 ( 23 503 126 ) ( 32 500 126 ) ( 16 496 119 ) +0~LIGHT1 [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1 ( 20 512 126 ) ( 23 503 126 ) ( 9 512 119 ) +0~LIGHT1 [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1 ( 23 521 126 ) ( 20 512 126 ) ( 16 528 119 ) +0~LIGHT1 [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1 ( 32 524 126 ) ( 23 521 126 ) ( 32 535 119 ) +0~LIGHT1 [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1 ( 41 521 126 ) ( 32 524 126 ) ( 48 528 119 ) +0~LIGHT1 [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1 ( 44 512 126 ) ( 41 521 126 ) ( 55 512 119 ) +0~LIGHT1 [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1 ( 44 512 66 ) ( 32 512 64 ) ( 41 503 66 ) +0~LIGHT1 [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1 ( 41 503 66 ) ( 32 512 64 ) ( 32 500 66 ) +0~LIGHT1 [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1 ( 32 500 66 ) ( 32 512 64 ) ( 23 503 66 ) +0~LIGHT1 [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1 ( 23 503 66 ) ( 32 512 64 ) ( 20 512 66 ) +0~LIGHT1 [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1 ( 20 512 66 ) ( 32 512 64 ) ( 23 521 66 ) +0~LIGHT1 [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1 ( 23 521 66 ) ( 32 512 64 ) ( 32 524 66 ) +0~LIGHT1 [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1 ( 32 524 66 ) ( 32 512 64 ) ( 41 521 66 ) +0~LIGHT1 [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1 ( 41 521 66 ) ( 32 512 64 ) ( 44 512 66 ) +0~LIGHT1 [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1 ( 41 503 126 ) ( 32 512 128 ) ( 44 512 126 ) +0~LIGHT1 [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1 ( 32 500 126 ) ( 32 512 128 ) ( 41 503 126 ) +0~LIGHT1 [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1 ( 23 503 126 ) ( 32 512 128 ) ( 32 500 126 ) +0~LIGHT1 [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1 ( 20 512 126 ) ( 32 512 128 ) ( 23 503 126 ) +0~LIGHT1 [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1 ( 23 521 126 ) ( 32 512 128 ) ( 20 512 126 ) +0~LIGHT1 [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1 ( 32 524 126 ) ( 32 512 128 ) ( 23 521 126 ) +0~LIGHT1 [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1 ( 41 521 126 ) ( 32 512 128 ) ( 32 524 126 ) +0~LIGHT1 [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1 ( 44 512 126 ) ( 32 512 128 ) ( 41 521 126 ) +0~LIGHT1 [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1 }
Ну в jmf-то сфера не бьется? Там надо ребаланс центра делать, поидее, при экспорте в мап.как он может это исправить, если точности не хватает при чтении из мап файла?
Ты в код компиляторов заглядывал когда-нить?ты не можешь просто кидать непонятные термины.
Ты же в курсе что у вещественных плавает точность, вместе с точкой? Чем дальше планес от центра - тем меньше его точность координат. Поэтому везде вводят эпсилоны, искуственно загрубляя эту точность. Чем больше размер карты - тем грубее эпсилон. Значит у сферы нормали заведомо меньше этого эпсилона. Вот и бьется. Тебе простой экспримент - проверь зависимость точности от масштаба сферы. Чем больше сфера - тем меньше вероятность, что она съедет.значит ему точности не хватает в расчетах
потому что в jmf хранятся координаты вершин, а не плоскости?Ну в jmf-то сфера не бьется?
нет, зачем жеТы в код компиляторов заглядывал когда-нить?
Где вводят эпсилоны, в компиляторе? У даблов точность не меньше 15 цифр, насколько его нужно загрубить, чтобы не хватало? Почему этим должен заниматься Ксерокс, если в мап файле всё ок (ну по крайней мере плоскости сферы записаны верно)?Поэтому везде вводят эпсилоны, искуственно загрубляя эту точность. Чем больше размер карты - тем грубее эпсилон. Значит у сферы нормали заведомо меньше этого эпсилона. Вот и бьется.
Я понятия не имею как устроен jmf. Не интерисовался как-то.потому что в jmf хранятся координаты вершин