Эти путевые заметки о работе над своим дипломом я пишу лично для себя. Лет этак пять назад, когда я попал на первую в своей жизни практику (это, кстати, была педагогическая практика), я очень сильно пожалел о том, что не вёл небольшой дневник, куда записывал бы все события/настроения/впечатления/результаты за прошедшие дни и недели. В конце практики, как полагается, надо было сдавать подробный отчет, а вот вспомнить и проанализировать каждое из сотни событий, случившихся за месяц практики, было невозможно.
Поэтому второй раз, чтобы не наступать на те же грабли, я и веду эти заметки.
За последнюю неделю дописал алгоритм “выдавливания” 2д окружности вдоль просчитанной кривой. Пришлось немного поискать по интернету, чтобы понять каким образом можно построить окружность в 3Д, имея перпендикуляр к плоскости окружности и её центр. Помог вот этот пост.
Немного больше, чем я ожидал, писал метод, который забивает под завязку массив indeces (те кто программировал 3д графику – поймут что это за массив). В итоге получилось, что финальный 3d-mesh, точнее его треугольники, лицом обращены задом наперед. Что давало возможность видеть внутренности кабели, в то время как внешняя сторона превращалась в невидимку. Дело в том, что я привык к OpenGL, в котором нумерация вершин треугольника (по-умолчанию) идет по ходу часовой стрелки, в то время как 3д-движок XNA по-умолчанию использует режим Cullmode с опцией CounterClockwise (против часовой стрелки). Вот и получались этакие уродства:
|
|
Зеленые точки на рисунке, расположены внутри цилиндра и не должны быть видны наблюдателю
|
Далее можно посмотреть видео…