Что такое дерево BSP?
BSP раÑшифровываетÑÑ ÐºÐ°Ðº двоичное разделение проÑтранÑтва. Формально оно предÑтавлÑет из ÑÐµÐ±Ñ Ñтруктуру данных, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð¸ÑпользуетÑÑ Ð´Ð»Ñ ÑƒÐ¿Ð¾Ñ€ÑÐ´Ð¾Ñ‡ÐµÐ½Ð¸Ñ Ð¾Ð±ÑŠÐµÐºÑ‚Ð¾Ð² в проÑтранÑтве (или на плоÑкоÑти). С точки Ð·Ñ€ÐµÐ½Ð¸Ñ ÐºÐ¾Ð¼Ð¿ÑŒÑŽÑ‚ÐµÑ€Ð½Ð¾Ð¹ графики, такие Ð´ÐµÑ€ÐµÐ²ÑŒÑ ÑвлÑÑŽÑ‚ÑÑ Ð¿Ð¾Ð»ÐµÐ·Ð½Ñ‹Ð¼Ð¸ инÑтрументами Ð´Ð»Ñ ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ñкрытых поверхноÑтей полигонов и рейтрейÑинга (моделирование Ñветовых Ñффектов). Чтобы Ñоздать такое дерево, обычно пользуютÑÑ Ñ€ÐµÐºÑƒÑ€Ñией. РекурÑивно вызываетÑÑ Ð¿Ñ€Ð¾Ñ†ÐµÐ´ÑƒÑ€Ð°, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð°Ð½Ð°Ð»Ð¸Ð·Ð¸Ñ€ÑƒÐµÑ‚ каждый полигон. Одним из параметров Ñтой процедуры ÑвлÑетÑÑ ÑÐµÐºÑƒÑ‰Ð°Ñ Ð¿Ð»Ð¾ÑкоÑÑ‚ÑŒ. Перед началом рекурÑии Ñта плоÑкоÑÑ‚ÑŒ выбираетÑÑ Ð¿Ñ€Ð¾Ð¸Ð·Ð²Ð¾Ð»ÑŒÐ½Ð¾. Итак, Ñта процедура Ñоздает очередной узел дерева. У каждого узла еÑÑ‚ÑŒ два дочерних узла. Процедура же должна анализировать проÑтранÑтво и раÑпределить полигоны на “левые” и “правые” отноÑительно выбранной плоÑкоÑти. Так может продолжатьÑÑ Ð´Ð¾ беÑконечноÑти, однако вопроÑÑ‹ о точках оÑтанова уже давно решены и их можно узнать, прочитав ÑпиÑок чаÑто задаваемых вопроÑов из BSP-Faq.
Ваш браузер не поддерживает апплеты Java. Загрузите Ñ Ñайта Microsoft виртуальную машину Java.
Как пользоватьÑÑ Ð°Ð¿Ð¿Ð»ÐµÑ‚Ð¾Ð¼?
Ð’Ñ‹ можете риÑовать Ñегменты линий в первом окне. ÐŸÐµÑ€Ð²Ð°Ñ Ð½Ð°Ñ€Ð¸ÑÐ¾Ð²Ð°Ð½Ð½Ð°Ñ Ð²Ð°Ð¼Ð¸ Ð»Ð¸Ð½Ð¸Ñ Ð¿Ð¾Ñ‚Ñ€ÐµÐ±ÑƒÐµÑ‚ некоторого времени Ð´Ð»Ñ Ð¸Ð½Ð¸Ñ†Ð¸Ð°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ð¸ внутренних клаÑÑов Java, но вÑе оÑтальные линии должны обрабатыватьÑÑ Ð½Ð¾Ñ€Ð¼Ð°Ð»ÑŒÐ½Ð¾. Сегменты линий, которые вы можете риÑовать, имеют номера. ЕÑли линии переÑекаютÑÑ, то выполнÑетÑÑ Ð¸Ñ… разделение по Ñледующему принципу. ДопуÑтим, какаÑ-то Ð»Ð¸Ð½Ð¸Ñ 1 переÑекает линию 2. Следовательно, Ð»Ð¸Ð½Ð¸Ñ 1 будет формировать Ñекущую плоÑкоÑÑ‚ÑŒ Ð´Ð»Ñ Ð»Ð¸Ð½Ð¸Ð¸ 2. ПоÑтому, Ð²Ñ‚Ð¾Ñ€Ð°Ñ Ð»Ð¸Ð½Ð¸Ñ Ñ€Ð°Ð·Ð´ÐµÐ»ÑетÑÑ Ð½Ð° два Ñегмента, на левый и правый, или, как еще говорÑÑ‚, на задний и передний. Ð’ данном примере иÑпользуетÑÑ Ñ‚ÐµÑ€Ð¼Ð¸Ð½Ð¾Ð»Ð¾Ð³Ð¸Ñ “задний и передний”, поÑтому при переÑечении двух линий на одной из них будет проиÑходить разделение на чаÑти Ñ Ð¿Ð¾Ñледующим их именованием Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸ÐµÐ¼ букв “b” (Ð´Ð»Ñ Ð·Ð°Ð´Ð½ÐµÐ¹ чаÑти) и “f” (Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ´Ð½ÐµÐ¹).
Ð’Ñ‹ можете перемещать и менÑÑ‚ÑŒ направление Ñиреневой Ñтрелки, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð¿Ñ€ÐµÐ´ÑтавлÑет направление взглÑда ÑмотрÑщего на иерархию Ñегментов. Ðтим вы изменÑете картину трехмерного визуализатора, раÑположенного ниже. Одновременно, направление и точка Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð²ÐµÐºÑ‚Ð¾Ñ€Ð° взглÑда отображаетÑÑ Ð² окне Ñ Ð´ÐµÑ€ÐµÐ²Ð¾Ð¼ BSP.
Ð’Ñ‹ можете применÑÑ‚ÑŒ операцию Ñкроллинга Ð´Ð»Ñ Ð²Ñех окон, еÑли Ñто необходимо. Ðто можно Ñделать, еÑли нажать и удерживать в нажатом положении мышь, Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰Ð°Ñ ÐµÑ‘ по окну.
Ð”Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð¸Ñчерпывающей информации читайте BSP-FAQ.
Ðта Ñтраница была переведена ПрÑдкиным Дмитрием. E-mail: pryadkin@inbox.ru