Все о текстурировании
|
|
ILIUS | Дата: Пятница, 13.03.2009, 10:57 | Сообщение # 1 |
Сержант
Группа: Проверенные
Сообщений: 24
Награды: 0
Репутация: 1
Статус: Offline
| Думаю вопросов у меня будет много, хватит на отдельную тему. Буду задавать конкретные вопросы. Как правильно применять фильтры. Например мипмапинг хочется применить. Есть egg файл, он уже текстурированный. Как вытянуть из него текстуры и применить к ним мипмапинг. Попробовал так но че-та текстура вобще пропадает: Code mapText=loader.loadTexture('models/texture.jpg') mapText.setMinfilter(Texture.FTLinearMipmapLinear) self.environ.setTexture(mapText) Да и не то это. Текстур то несколько. С findTexture то же чего-то не получилось.
|
|
| |
ninth | Дата: Пятница, 13.03.2009, 13:32 | Сообщение # 2 |
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
| Проще всего в самом файле модели указать. Что-нить типа этого. <Texture> grass.png { "res/textures/grass.png" <Scalar> minfilter { LINEAR_MIPMAP_LINEAR } <Scalar> magfilter { LINEAR_MIPMAP_LINEAR } } Вообще в Блендере, если назначить материал, с соответствующими параметрами, то при экспорте мипмаппинг автоматом вписывается
|
|
| |
BVOG | Дата: Понедельник, 16.11.2009, 14:53 | Сообщение # 3 |
Полковник
Группа: Проверенные
Сообщений: 184
Награды: 0
Репутация: 4
Статус: Offline
| В Maya тоже мипмаппинг присутсвует.
Skype: thebvog
|
|
| |
designer | Дата: Четверг, 18.02.2010, 10:23 | Сообщение # 4 |
Майор
Группа: Пользователи
Сообщений: 90
Награды: 0
Репутация: 0
Статус: Offline
| А как обычно хранят текстуры отдельно или в ощем файле?
...игры взрастили человеческую цивилизацию...
|
|
| |
BVOG | Дата: Четверг, 18.02.2010, 16:43 | Сообщение # 5 |
Полковник
Группа: Проверенные
Сообщений: 184
Награды: 0
Репутация: 4
Статус: Offline
| Обычно отдельно.
Skype: thebvog
|
|
| |
designer | Дата: Пятница, 19.02.2010, 20:03 | Сообщение # 6 |
Майор
Группа: Пользователи
Сообщений: 90
Награды: 0
Репутация: 0
Статус: Offline
| А почему некоторые разработчики размещают кучу картинок разных изображений и деталей интерфейса в одном графическом файле? А потом они выдераются оттуда, если ошибиться то получается чёрти что...
...игры взрастили человеческую цивилизацию...
|
|
| |
ninth | Дата: Суббота, 20.02.2010, 14:43 | Сообщение # 7 |
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
| Не всегда. Обычно "один графический файл" - это архив с ресурсами из которого они по мере надобности извлекаются. Реально одной картинкой обычно делают тайлы.
|
|
| |
designer | Дата: Понедельник, 22.02.2010, 10:13 | Сообщение # 8 |
Майор
Группа: Пользователи
Сообщений: 90
Награды: 0
Репутация: 0
Статус: Offline
| А теоритически лучше хранить текстурки вместе с моделью и анимацией к ней или в общих хранилищах для текстур, моделей и тр отдельно?
...игры взрастили человеческую цивилизацию...
|
|
| |
ninth | Дата: Среда, 24.02.2010, 09:00 | Сообщение # 9 |
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
| В производительности разницы нет, единственное, что у тебя может одна текстура (например кирпичная стена) в десятке моделей использоваться и класть копию этой текстуры с каждой моделькой нерационально.
|
|
| |
Mibus | Дата: Среда, 19.05.2010, 03:05 | Сообщение # 10 |
Рядовой
Группа: Пользователи
Сообщений: 6
Награды: 0
Репутация: 0
Статус: Offline
| Ну вот такая проблема. При наложении текстуры на меш наследуемые от render всё нормально. При наложении на меш прикреплённый к aspect2d тексура "вывернута". Code import direct.directbase.DirectStart
button1=loader.loadModel('button') button1.setTexture(loader.loadTexture('button_test.bmp')) button1.repa rentTo(aspect2d) button1.setPos(button1,0.5,0,0)
button 2=loader.loadModel('button') button2.setTexture(loader.loadTexture('button_test.bmp')) button2.reparentTo(render) button2.setPos(0,3,0)
r un() возможно я не так пользуюсь aspect2D, т.к. разбирался как он работает методом тыка и глядя на то что говорит SPE при ошибке. Прикрепил скрин, *.egg файл и текстуру.
Сообщение отредактировал Mibus - Среда, 19.05.2010, 03:11 |
|
| |
ninth | Дата: Среда, 19.05.2010, 13:25 | Сообщение # 11 |
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
| у тебя просто они с разных сторон показаны ) добавь button1.lookAt(button1,0,-1,0) после button1.setPos(button1,0.5,0,0) Ну или исправь развёртку в блендере так чтобы с обоих сторон одинаково текстура накладывалась
|
|
| |
Mibus | Дата: Четверг, 20.05.2010, 02:34 | Сообщение # 12 |
Рядовой
Группа: Пользователи
Сообщений: 6
Награды: 0
Репутация: 0
Статус: Offline
| вот. спасибо я так и думал что меш как бы изнутри просматривается и не мог найти способ как его отодвинуть )
|
|
| |
dis_node | Дата: Понедельник, 07.03.2011, 01:13 | Сообщение # 13 |
Лейтенант
Группа: Пользователи
Сообщений: 56
Награды: 0
Репутация: 2
Статус: Offline
| Новый вопрос. При назначении текстуры NodePath.setTexture() старая текстура не удаляется, отображается согласно приоритету. Как отвязать текстуру от объекта (или вообще все, перед назначением новой)? p.s. ломает отслеживать приоритет, столкнулся когда копировал NodePath.
|
|
| |
ninth | Дата: Пятница, 18.03.2011, 01:37 | Сообщение # 14 |
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
| Что-то я пропустил это сообщение ) Если текстуры назначались в рантайме, то np.clearTexture() Если это встроенные текстуры (назначенные в редакторе), то чуть сложнее: Code for gnp in np.findAllMatches('**/+GeomNode'): gn = gnp.node() for i in range(gn.getNumGeoms()): gn.setGeomState(i, gn.getGeomState(i).removeAttrib(TextureAttrib.getClassType()))
|
|
| |
Dimon3D | Дата: Понедельник, 05.09.2011, 12:27 | Сообщение # 15 |
Полковник
Группа: Проверенные
Сообщений: 202
Награды: 1
Репутация: 4
Статус: Offline
| Почему при использовании stencil текстуры с размытыми границами, в результате смешивания получаю четкие границы ? Пример:
|
|
| |