![]() |
Модераторы: Rickert, Alexeis, BorisVorontsov |
![]() ![]() ![]() |
|
romanbiller |
|
|||
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 3.5.2013 Репутация: нет Всего: нет |
Люди помогите плиз уже заколебался как отобразить текстуру на сфере???
вот код
|
|||
|
||||
KaZepKa |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 29.10.2011 Репутация: нет Всего: нет |
Обязательно вручную рисовать сферу и текстуру наклеивать?
Если нет, то по моему проще нарисовать эту сферу в блендере или 3дс максе, наклеить там нужную текстуру, конвертировать модель в формат .X и грузануть её. Еще если не ошибаюсь, то из-за какого-то g_pDevice->SetRenderState может не отображаться текстура, а просто пустая фигура. |
|||
|
||||
romanbiller |
|
||||
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 3.5.2013 Репутация: нет Всего: нет |
Короче поковырял ещё в инете наложить текстуру получилось да только получилась какая то муть
вот код
мне кажется проблемма в этом участке кода
я тупо содрал его из нета а разобраться в нем не могу помогите кто чем. Присоединённый файл ( Кол-во скачиваний: 6 ) ![]() |
||||
|
|||||
EgoBrain |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 537 Регистрация: 23.3.2008 Где: Комната Репутация: нет Всего: 2 |
Вначале подумал что не отображается текстура изза отсутсвия освещения, потом вспомнил что освещение не влияет..
Что именно не устраивает в том, как сфера затекстурировалась, что за "муть"? Вот как структурирован код, это точно муть. Еще подключаешь кучу ненужных загловочных файлов, достаточно трёх (на самом деле дажу и двух):
Это сообщение отредактировал(а) EgoBrain - 22.5.2013, 01:22 |
|||
|
||||
EgoBrain |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 537 Регистрация: 23.3.2008 Где: Комната Репутация: нет Всего: 2 |
Может ты имел ввиду побочный эффект растеризации текстуры при CULLMODE_NONE?
Я чучуть подправил код и изменил параметр линковщика чтобы программа вызвала консоль для вывода инфы, нажатием на клавишу 'c', переключаешь CULLMODE от 0 до 2, здесь требуется обход треугольников по часовой стрелке - "D3DCULLMODE_CW".
Программе нужен файл coffe.jpg в текущей директории. З.Ы. Не забывай перед использованием ресурсов делать проверки на их существование. Так, например, при получении окном сообщения WM_DESTROY ты пытаешься освободить ресурс текстуры, но не факт что она есть ;) Присоединённый файл ( Кол-во скачиваний: 9 ) ![]() |
|||
|
||||
romanbiller |
|
|||
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 3.5.2013 Репутация: нет Всего: нет |
EgoBrain
Отвечаю текстура наложилась просто она растянулась и перевернулась в верх тормашками то же получается и с вашим примером если заменить текстуру Присоединённый файл ( Кол-во скачиваний: 5 ) ![]() |
|||
|
||||
kurlyak |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 218 Регистрация: 7.11.2007 Репутация: 1 Всего: 3 |
Блин, с годами умников на Винграде не меньше...
А для ясности тебе romanbiller говорю печатными буквами - ни CreateBox ни CreateSphere в DirectX не работает так как бы хотелось ламеру. То есть бокс и сферу создает- но текстурные координаты нужно заполнять самостоятельно. То есть ты прав- локать вертексный буфер и запонять текст. координатами САМОСТОЯТЕЛЬНО. Код тебе я предоставил. |
|||
|
||||
romanbiller |
|
|||
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 3.5.2013 Репутация: нет Всего: нет |
Всё получилось. Всем большущее спасибо отдельное спасибо kurlyak благодаря его примеру всё заработало.
|
|||
|
||||
EgoBrain |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 537 Регистрация: 23.3.2008 Где: Комната Репутация: нет Всего: 2 |
Да, вот только что толку, всё равно не понятно как с текстурными координатами на сложных поверхностях работать, что за формулы применены. Как прямоугольная картинка стала вдруг сферической, и причем тут смежности вершин... ![]() Это сообщение отредактировал(а) EgoBrain - 18.6.2013, 02:18 |
|||
|
||||
romanbiller |
|
||||
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 3.5.2013 Репутация: нет Всего: нет |
Причём смежности не знаю сам да и если убрать вот этот кусок кода
то всё равно будет работать ну а что происходит здесь
нужно поковырять и подумать хорошенко |
||||
|
|||||
romanbiller |
|
||||
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 3.5.2013 Репутация: нет Всего: нет |
афигеть если убрать иэтот участок кода
тоже работает. Чтож здесь вообще происходит
Кто нибудь сможет с обяснением помоч??? |
||||
|
|||||
EgoBrain |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 537 Регистрация: 23.3.2008 Где: Комната Репутация: нет Всего: 2 |
Значит смежности он использовал ради хорошего тона, а не для правильного координирования текстур. Смежности позволяют экономить память/такты, так как смежные треугольники имеют одни и теже координаты некоторых вершин, вобщем прочитай про смежности. По теме требуется заострить внимание на этом участке:
Здесь нужны знания линейной алгебры аркосинуса и аркосинуса и арктангенса.. |
|||
|
||||
![]() ![]() ![]() |
Вы можете найти полезным что... | |
|
|
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |