| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Общие вопросы по .NET и C# > DirectX 4-мерная визуализация |
| Автор: marcusmae 16.4.2007, 18:07 |
| Всем привет. Под четырёхмерной визуализацией я понимаю визуализацию функции трёх переменных f(x,y,z), в которой переменные откладываются по трём осям, а цвет служит индикатором того или иного значения функции (в лит-ре - volume visualization). Имею замысел сделать небольшую программку, скорее всего с использованием DirectX, которая могла бы это делать. Сразу скажу, что по четырёхмерке в сети очень мало наработок, имеющиеся - старые и закрытые, так что надо думать самому. Так что, если то, что я опишу далее, неосуществимо или можно сделать лучше - так и скажите, плз. Положим, у меня имелись таблицы значений f(x,y,z), из которых я уже наштамповал стопку изображений с альфа-каналом. Каждое из этих изображений является срезом будующей визуализации по высоте, то есть, разместив их друг под другом, я получу желанный слоёный пирог. Проблема шага между слоями, в принципе, не стоит, поскольку промежуточные изображения можно сгенерить, воспользовавшись, например, интерполяционными полиномами. В чём же вопрос? = Затруднение вызывает вывод двухсторонних, полупрозрачных текстур (этих самых изображений) друг над другом с весьма малым шагом. Может быть, угостите советом/ссылкой или куском кода под DirectX? ЗЫ: Пишу в раздел C#, однако готов разобраться и в плюсах. |
| Автор: mr.DUDA 17.4.2007, 10:22 |
| Пример на XNA подойдёт ? |
| Автор: marcusmae 17.4.2007, 17:43 | ||
Да, подойдёт. |
| Автор: mr.DUDA 17.4.2007, 18:59 | ||||
| Ok, только сразу предупреждаю не пугаться если с шейдерами не знаком Исходник:
my_shader.fx
Трехмерная текстура может быть любая. Шейдер и текстуру можно положить в любую директорию, только пути подправить в коде. Отрисованный результат можно забрать из бэкбуфера в текстуру (device.ResolveBackBuffer) и к примеру сохранить в файл. |
| Автор: marcusmae 17.4.2007, 23:25 |
Не знаком. Не пугаюсь, наборот, оч любопытно. С XNA ранее не работал, но сейчас поставлю и буду обучаться (кажется, это того стоит). Большое спасибо за подробный пример! |
| Автор: mr.DUDA 18.4.2007, 09:39 |
| Я отредактировал предыдущий пост, добавил перспективу (см. скрин). В первом варианте слои "склеивались" в один квадрат повёрнутый к наблюдателю. На скрине - шумовая текстура без прозрачности (других не было). Можно поиграться с настройкой параметров (строки 78 и 79), чтобы все слои "бутерброда" были видны. |
| Автор: Lеstat 19.4.2007, 18:50 |
| Не подскажете как можно выводить то, что рисует XNA на свою форму? |
| Автор: Kvazilol 20.4.2007, 01:34 |
| прошу прощения, а как понормальному поставить XNA ? у меня оно пишет что требуется VisualStudio Express но я не собираюсь сносить Final и ставить это убожесто |
| Автор: Lеstat 20.4.2007, 02:41 |
| покапался и вот что нашел... интересные статейки http://www.ziggyware.com/readarticle.php?article_id=82 http://blogs.msdn.com/shawnhar/archive/2007/01/23/using-xna-with-winforms.aspx "сам шучу, сам смеюсь" © а вот на тему как поставить без экспресса... так бегло просморел http://www.xnadev.ru/modules.php?name=Forums&file=viewtopic&t=132 http://www.xnadev.ru/modules.php?name=Forums&file=viewtopic&t=87&start=0&postdays=0&postorder=asc&highlight= http://www.xnadev.ru/modules.php?name=Forums&file=viewtopic&t=60 |
| Автор: mr.DUDA 20.4.2007, 09:36 |
| Kvazilol, Модератор: Пожалуйста, один топик - один вопрос. |