Наложение нескольких текстур на загружаемый Mesh
Вложений: 4
Помогите пожалуйста. 3 дня мучаюсь над этим вопросом, уже все учебники, статьи и примеры пересмотрел - ни один из них не подходит.
:::::: КОД :::::: ;загружаем Mesh mesh = xloadmesh("mesh.3ds") ;вызываем функцию текстурирования mesh_texture_splatting() Скажите суть метода, какие команды потребуется или может у кого-то алгоритм есть )) Например нам дана вот такая маска и каждый цвет на ней ссответствует определенной текстуре. ->->-> |
Ответ: Наложение нескольких текстур на загружаемый Mesh
Вложений: 12
Или нам даны maps и textures.
Где map (карта гор, карта_травы, карта_еще травы, карта_еще гор, карта нормалей) А где textures( разные текстурки рисующие по белому цвету на maps) + ну еще в добавок можно текстуру Detail |
Ответ: Наложение нескольких текстур на загружаемый Mesh
Пиксельный шейдер в том состоянии в каком он сейчас в студию!
|
Ответ: Наложение нескольких текстур на загружаемый Mesh
Если тебе дать готовый шейдер, ты начнешь задавать много много вопросов.
Начни с малого:
Код:
static float4 Colorka : COLOR0; |
Ответ: Наложение нескольких текстур на загружаемый Mesh
Я думаю, что если дать мне полный шейдер, то у меня как раз не возникнет вопросов)) Он будет исчерпан...когда написал пост я потом что и делал читал про шейдеры и изучал семплы .... так что Please me help
|
Ответ: Наложение нескольких текстур на загружаемый Mesh
Цитата:
Его нужно написать под конкретно твою задачу. Станет ли кто-то это делать за тебя? Вряд ли. Что конкретно тебе непонятно? Как прочитать пиксель из текстуры? Как их смешать? Пусть у нас будет какая-то "подложка" — диффузина, которая есть всегда, в любом месте меша. Например пусть это будет текстура скалы. Потом у нас есть другие текстуры - травы, грязи, ещё чего-нибудь. У нас информация о распределении текстур хранится в цветной кляксе. В кляксе 4 канала: RGBA. То есть максимум мы можем раскрасить наш меш в 4 текстуры + подложка, которая есть всегда. Аналогия в Фотошопе (если знаком): подложка — Background-слой, остальные слои — текстуры, их ластиком подтёрли в местах где нужно и наложили друг на друга. Делаем в шейдере вектор4. В нём мы будем хранить результат. В него сразу записываем данные из текстуры-подложки. Потом смешиваем его с первой текстурой. Пусть её "интенсивность" обозначается красным каналом из кляксы. Берём значение R из кляксы. Умножаем на него значение прочитанное из первой текстуры. Умножаем на (1-R) значение подложки. Складываем. Записываем в наш вектор4. Потом смешиваем со второй текстурой. Пусть её "интенсивность" хранится в канале G кляксы. Читаем оттуда G, умножаем на него тексель второй текстуры. На (1-G) умножаем значение, того, что у нас получилось перед этим. Складываем, помещаем в наш вектор результата. Аналогично делаешь с каналами B и A если таковые нужны. Как сделать больше текстур? Решать можно по-разному, проще всего сделать ещё одну "кляксу" для хранения интенсивности ещё текстур. Хотя сначала сделай с четырьмя чтоб работало, потом двигайся дальше. В итоге у тебя должен получиться в векторе4 правильно смешанный цвет из всех текстур. Применяешь его как будто пиксель прочитанный из текстуры. Вот тебе полный алгоритм как делать. Возьми и делай. Задавай вопросы в конкретных местах если не получается. |
Ответ: Наложение нескольких текстур на загружаемый Mesh
Цитата:
(хотя я так понял, ты решил разжевать для понятности его смысл) |
Ответ: Наложение нескольких текстур на загружаемый Mesh
Вложений: 1
Упрощенный способ автомата.
Дорабатывай как тебе надо,набросал за 5 минут. |
Ответ: Наложение нескольких текстур на загружаемый Mesh
Код:
diffuse=(tex2D(Stex1S, input.texCoords)*diffuse.r)+(tex2D(Stex2S, input.texCoords)*diffuse.g)+(tex2D(Stex3S, input.texCoords)*diffuse.b),1; |
Ответ: Наложение нескольких текстур на загружаемый Mesh
Я не заморачивался с кодом , там все можно переделать на много лучше и как сказал автомат , с 4 текстурами.
Гугли тему Tetxure Splatting. |
Ответ: Наложение нескольких текстур на загружаемый Mesh
http://habrahabr.ru/post/180743/
Вот тут кстати описан хороший принцип как сделать ещё более продвинуто. Но, как говорится, совершенству нет предела. Начни с малого и далее вноси улучшения до той степени до какой посчитаешь нужным. |
Ответ: Наложение нескольких текстур на загружаемый Mesh
Цитата:
не собирался делать работу за ТСа, но вы меня вынуждаете: Код:
float3 mask = tex2D(texMask, texCoords); |
Ответ: Наложение нескольких текстур на загружаемый Mesh
Что не так или я уже в глаза долблюсь!!)
-- Шейдер -- Цитата:
|
Ответ: Наложение нескольких текстур на загружаемый Mesh
Проверяй шейдер на ошибки через tv3d.
|
Ответ: Наложение нескольких текстур на загружаемый Mesh
Проверка шейдера sFXe.7z
Тестер сказал что шейдер рабочий. Упаковывай код в сообщение в соответствующие теги. Последний Хорс с примерами. Э, не ту ссылку дал на семплы https://yadi.sk/d/npgfRfwlcjhST, думаю — что-то так мало. P. S. Хорс в лог тоже может писать ошибки шейдера. |
Ответ: Наложение нескольких текстур на загружаемый Mesh
Вложений: 1
Короч в опу шейдеры...пока что
Поделил весь террайн на 36 регионов, в 3ds max сделал текстуры для каждого и получилось вот что: FPS 81 - временно без оптимизации |
Ответ: Наложение нескольких текстур на загружаемый Mesh
Вложений: 1
Ты что то типа этого замутить пытался? Код:
uniform sampler2D texture0; |
Ответ: Наложение нескольких текстур на загружаемый Mesh
Цитата:
|
Ответ: Наложение нескольких текстур на загружаемый Mesh
Цитата:
|
Ответ: Наложение нескольких текстур на загружаемый Mesh
Цитата:
|
Ответ: Наложение нескольких текстур на загружаемый Mesh
Цитата:
Следующая по плану вода - она с шейдером ) |
Ответ: Наложение нескольких текстур на загружаемый Mesh
Вложений: 2
Мож кто знает более совершенную формулу расположения травы( и не только травы) по вертексам Меша ?
У меня так: PHP код:
|
Ответ: Наложение нескольких текстур на загружаемый Mesh
может лучше не по мешу а просто по карте высот? генеришь рандомную позицию в прямоугольнике, находишь её высоту и ставишь.
алсо пучки травы лучше по максимуму склеивать в единый меш, а то проц подавится. |
Ответ: Наложение нескольких текстур на загружаемый Mesh
Цитата:
|
Ответ: Наложение нескольких текстур на загружаемый Mesh
Протестируйте на FPS у себя пожалуйста )
В файле Settings.ini можно менять настройки. 1) Показатель FPS при ваших максимальных настройках 2) FPS при оптимальной настройке для вашего железа Жду ваших советов по оптимизации...что следует исправить или добавить...баги P.S. над гравитацией пока что особо не парился http://dropmefiles.com/fHbSs |
Ответ: Наложение нескольких текстур на загружаемый Mesh
Грузится долго , при стандартных настройках фпс 65-140.
Накрутил на максимум , 8-15 но трава прикольная. Как я понял ты просто прячешь растения дальше небольшого радиуса ? Вообще в примерах ксорса есть пример инстансинга , так же траву надо объединять в 1 меш. |
Ответ: Наложение нескольких текстур на загружаемый Mesh
Цитата:
2) Оптимальные? Это сколько? Для меня оптимальный ФПС 60 - 75 (частота моего монитора). Поставил настройки: 2, 1, 3000, и фпс стал ~60, я думал нашёл оптимальное значение, но пока заходил в глубь карты фпс падал, 48, 40, 35. В одну сторону повернёшься — 50, в другую 30, очень нестабильно. При минимуме (по умолчанию), фпс <300, и камера стала быстрой. CPU — AMD FX 6100 3.30GHz 6 core GPU — Palit GF 450 GTS 1Gb RAM — 4Gb OS — Windows 7 64 SP1 P. S. Используй маску вместо альфы, трава с деревьями сливается. У хорса проблемы с мип-мапом в режиме маски (альфы?), по этому советую dds с настроенным лодом. |
Ответ: Наложение нескольких текстур на загружаемый Mesh
Цитата:
В 1 меш? а чтобы не нужные элементы меша скрывать - это нужно по чайлдам пробегать потом? |
Ответ: Наложение нескольких текстур на загружаемый Mesh
Цитата:
Там все чанками , допустим 5х5 метров. Погугли BlitzGrass , там уже все за тебя сделали , и достаточно качественно. https://www.dropbox.com/s/eqye7v9jda...52.09.png?dl=0 |
Ответ: Наложение нескольких текстур на загружаемый Mesh
Вложений: 1
Добавил облака :)
Следующее создание норм текстуры для террайна Цитата:
|
Ответ: Наложение нескольких текстур на загружаемый Mesh
http://nobiax.deviantart.com/gallery...Packs?offset=0 Вот тут много бесплатной и качественной медии!
|
Ответ: Наложение нескольких текстур на загружаемый Mesh
Кто-нибудь пользовался командами xLoadTerrainTexture() и xTerrainTexture() ?
Чет я так и не разобрался как работают, а интересно....у меня он просто в черный цвет Терр красит и все |
Ответ: Наложение нескольких текстур на загружаемый Mesh
Вложений: 1
Запилил текстуру.
Вопрос----Почему после xTerrainSplatting пропал туман?? Он ставится, но только на очень близком расстояние. И еще один - Instancing работает с типами? |
Ответ: Наложение нескольких текстур на загружаемый Mesh
xTerrainSplatting Накладывает на террейн Splatting шейдер для смешивания текстур , разработчики туман в него не прописали.
Вот поэтому надо писать свои шейдеры что бы иметь полный контроль над объектами и их видом. |
Ответ: Наложение нескольких текстур на загружаемый Mesh
Я не уверен, что шейдеры к террайну можно применять....это же в xors что-то иное чем ентити или мешь - или я не прав?
|
Ответ: Наложение нескольких текстур на загружаемый Mesh
Все познается методом пробы.
|
Ответ: Наложение нескольких текстур на загружаемый Mesh
Киньте пожалуйста "генератор случайных чисел" у кого есть или кто знает как сделать его.
Прочитал про разные алгоритмы так и недопер) А то в xors'e слишком уж не очемный Rnd и Rand...часто одинаковые значения выводят, да и то в очень узком диапазоне |
Ответ: Наложение нескольких текстур на загружаемый Mesh
Ты используешь Ксорс вместе с Блицем?
Если да, то rnd() и rand() там блицевские и есть. А одинаковые значения выходят потому, что каждый раз при старте приложения там одно и то же зерно генерации. Чтобы было разное, устанавливай каждый раз при запуске своей программы другое зерно. Проще всего использовать для этой цели время аптайма: Код:
SeedRnd(Millisecs()) |
Ответ: Наложение нескольких текстур на загружаемый Mesh
Вложений: 1
Как сделать чтобы игрок четко проходил через 2ую позицию, а не срезал на искосок?
|
Часовой пояс GMT +4, время: 21:55. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot