Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D > 3D-программирование

3D-программирование Вопросы, касающиеся программирования 3D мира

Ответ
 
Опции темы
Старый 27.02.2008, 01:56   #1
DEGABB
AnyKey`щик
 
Регистрация: 03.01.2007
Сообщений: 6
Написано 0 полезных сообщений
(для 0 пользователей)
Текстуирование растянутых примитивов.

Как правильно натягивать текстуру на простой параллелепипед (кубик растянутый 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 для текстуры или это как-то может помочь моему предыдущему вопросу?

Заранее спасибо.
(Offline)
 
Ответить с цитированием
Старый 27.02.2008, 08:40   #2
jimon
 
Сообщений: n/a
Ответ: Текстуирование растянутых примитивов.

ScaleTexture texture,u_scale#,v_scale#
поиграйся со значениями < 1, конкретнее u_scale# = 1 / 20
или v_scale играйся в общем

про 16 и 32 флаги вот :
16: Clamp u - Any part of a texture that lies outsides the U coordinates of 0-1 will not be drawn. Prevents texture-wrapping.

32: Clamp v - Any part of a texture that lies outsides the v coordinates of 0-1 will not be drawn. Prevents texture-wrapping.
толком не понял ... кто-то другой ответит
по идее банально обрезает текстуру по текстурным координатам

TextureCoords texture,coords

Parameters:
texture - name of texture
coords -
0: UV coordinates are from first UV set in vertices (default)
1: UV coordinates are from second UV set in vertices
Description:
Sets the texture coordinate mode for a texture.

This determines where the UV values used to look up a texture come from.
это какой-то метод текстурирования, не уверен (никогда не юзал команду)
но возможно она инвертирует текстуру, или меняет набор UV координат из вершин (?)

Последний раз редактировалось jimon, 27.02.2008 в 08:47.
 
Ответить с цитированием
Старый 27.02.2008, 11:01   #3
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: Текстуирование растянутых примитивов.

TextureCoords
у вершины может быть два набора текстурных координат. эта команда определяет какой из наборов использовать. нужно для лайтмап.

тебе нужно скалить текстуру, Джимон уже написал.
(Offline)
 
Ответить с цитированием
Старый 29.02.2008, 01:34   #4
DEGABB
AnyKey`щик
 
Регистрация: 03.01.2007
Сообщений: 6
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Текстуирование растянутых примитивов.

Сообщение от HolyDel Посмотреть сообщение
TextureCoords
у вершины может быть два набора текстурных координат. эта команда определяет какой из наборов использовать. нужно для лайтмап.

тебе нужно скалить текстуру, Джимон уже написал.
Объясните тогда как скалить текстуру, если 1/2, 1/10, 1/100 коэффициенты приводят её к ужасно одинаково-растянутому виду. А увеличивать текстуру - будут видны её пикселы (например кирпичи растянутся до не мыслимых размеров).

Может есть другой способ создать стену размером 20,1,1 с квадратной текстурой?
Вариант с загрузкой сделанной заранее модели исключён.

Неужели всегда, когда объект нестандартного размера, текстура тоже растягивается?
Как ЕЁ размер зафиксировать?
(Offline)
 
Ответить с цитированием
Старый 29.02.2008, 01:56   #5
tormoz
Гигант индустрии
 
Аватар для tormoz
 
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений
(для 4,437 пользователей)
Ответ: Текстуирование растянутых примитивов.

Да что сложного то ?
ScaleTexture texture, 0.05,1
Вот тебе в 20 раз по Х
__________________
(Offline)
 
Ответить с цитированием
Старый 29.02.2008, 11:05   #6
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: Текстуирование растянутых примитивов.

Как ЕЁ размер зафиксировать?
Никак.
(Offline)
 
Ответить с цитированием
Старый 29.02.2008, 11:44   #7
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: Текстуирование растянутых примитивов.

Смотри, модель состоит из вершин и трианглов. Так вот информация о текстурах хранится в вершинах. UVW - текстурные коорлдинаты. Каждая вершина содержит эту инфу. Текстура слева направо вымеряется не по пикселям, а от 0 до 1.0. И таким образом, когда масштабируешь текстуру, то при рендере, все текстурные координаты умножаются на скейл.
(Offline)
 
Ответить с цитированием
Старый 03.03.2008, 03:40   #8
DEGABB
AnyKey`щик
 
Регистрация: 03.01.2007
Сообщений: 6
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Текстуирование растянутых примитивов.

Сообщение от MoKa Посмотреть сообщение
Смотри, модель состоит из вершин и трианглов. Так вот информация о текстурах хранится в вершинах. UVW - текстурные коорлдинаты. Каждая вершина содержит эту инфу. Текстура слева направо вымеряется не по пикселям, а от 0 до 1.0. И таким образом, когда масштабируешь текстуру, то при рендере, все текстурные координаты умножаются на скейл.
Т.е. текстуировать верхнюю, нижнюю и боковые грани сжатой текстурой, а переднюю и заднюю - текстурой исходного размера никак не получится?
Я так понял, что эту проблему никак не решить?

Придётся всё же создавать модель во внешнем редакторе?

Но как же быть, когда стена в игре от уровня к уровню меняет свою длину (размеры уровня разные)? Кстати, стена играет роль "забора", который определяет границы уровня.
(Offline)
 
Ответить с цитированием
Старый 03.03.2008, 08:53   #9
jimon
 
Сообщений: n/a
Ответ: Текстуирование растянутых примитивов.

DEGABB
тебе же написали что каждая вершина имеет свои текстурные координаты
тоесть можно текстурировать отдельно "стороны" куба
если повозится правда :/
 
Ответить с цитированием
Старый 03.03.2008, 10:03   #10
FDsagizi
Бывалый
 
Аватар для FDsagizi
 
Регистрация: 04.01.2008
Адрес: Казахстан \ Талдыкорган
Сообщений: 659
Написано 170 полезных сообщений
(для 509 пользователей)
Ответ: Текстуирование растянутых примитивов.

3Д мах
__________________
Жизнь как говориться игра- делать игры моя профессия(с)

Программирование, это религия! Её нужно исповедовать.
(Offline)
 
Ответить с цитированием
Старый 03.03.2008, 11:10   #11
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: Текстуирование растянутых примитивов.

DEGABB, лучше эту стену делать самостоятельно (прям в блице, через AddVertex, AddTriangle)
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
moka (03.03.2008)
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 15:29.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com