![]() |
Текстуирование растянутых примитивов.
Как правильно натягивать текстуру на простой параллелепипед (кубик растянутый ScaleEntity по одной из проекции)?
Пример: Нужно сделать простую кубическую стену. Когда делаешь стену из стандартных кубиков, расположенных чётко друг к дружку, то при движении камеры, их границы немного шевелятся (на 1 пиксел). Глупо. Понимаю, что стена должна быть цельной. border=CreateCube();Создаю куб border_tex = LoadTexture("Wall.JPG") ScaleEntity border,1,1,20; растягиваю куб по оси Z в 20 раз EntityTexture border,border_tex; одеваю получившийся параллелепипед в текстуру. В итоге: торцы у него текстуированы правильно, а вот текстура на боках (которые растянуты) тоже растянута :( И не важно, текстуировать ДО или ПОСЛЕ растяжения куба. Результат один. И ещё: опишите подробно, как правильно пользоваться командой TextureCoords texture,coords и что она даёт вообще? И что означают значения 16 и 32 параметра flags в команде CreateTexture ( width,height[,flags][,frames] ) Я так понял они ограничивают текстуру по координатам U и V. Это только лишь для того, чтобы вырезать из картинки кусочек U на V для текстуры или это как-то может помочь моему предыдущему вопросу? Заранее спасибо. |
Ответ: Текстуирование растянутых примитивов.
ScaleTexture texture,u_scale#,v_scale#
поиграйся со значениями < 1, конкретнее u_scale# = 1 / 20 или v_scale :) играйся в общем про 16 и 32 флаги вот : Цитата:
по идее банально обрезает текстуру по текстурным координатам Цитата:
но возможно она инвертирует текстуру, или меняет набор UV координат из вершин (?) |
Ответ: Текстуирование растянутых примитивов.
TextureCoords
у вершины может быть два набора текстурных координат. эта команда определяет какой из наборов использовать. нужно для лайтмап. тебе нужно скалить текстуру, Джимон уже написал. |
Ответ: Текстуирование растянутых примитивов.
Цитата:
Может есть другой способ создать стену размером 20,1,1 с квадратной текстурой? Вариант с загрузкой сделанной заранее модели исключён. Неужели всегда, когда объект нестандартного размера, текстура тоже растягивается? Как ЕЁ размер зафиксировать? |
Ответ: Текстуирование растянутых примитивов.
Да что сложного то ?
ScaleTexture texture, 0.05,1 Вот тебе в 20 раз по Х |
Ответ: Текстуирование растянутых примитивов.
Цитата:
|
Ответ: Текстуирование растянутых примитивов.
Смотри, модель состоит из вершин и трианглов. Так вот информация о текстурах хранится в вершинах. UVW - текстурные коорлдинаты. Каждая вершина содержит эту инфу. Текстура слева направо вымеряется не по пикселям, а от 0 до 1.0. И таким образом, когда масштабируешь текстуру, то при рендере, все текстурные координаты умножаются на скейл.
|
Ответ: Текстуирование растянутых примитивов.
Цитата:
Я так понял, что эту проблему никак не решить? Придётся всё же создавать модель во внешнем редакторе? Но как же быть, когда стена в игре от уровня к уровню меняет свою длину (размеры уровня разные)? Кстати, стена играет роль "забора", который определяет границы уровня. |
Ответ: Текстуирование растянутых примитивов.
DEGABB
тебе же написали что каждая вершина имеет свои текстурные координаты тоесть можно текстурировать отдельно "стороны" куба если повозится правда :/ |
Ответ: Текстуирование растянутых примитивов.
3Д мах
|
Ответ: Текстуирование растянутых примитивов.
DEGABB, лучше эту стену делать самостоятельно (прям в блице, через AddVertex, AddTriangle)
|
Часовой пояс GMT +4, время: 03:15. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot