PDA

Просмотр полной версии : Ночники



B.U.G.O.R.
17.08.2016, 00:16
В-общем, я тут зафигачил-таки крутой способ создания ночных моделей с тенями, освещением не альфа-каналом и так далее. Вот попробую описать то, как я их делаю. Пара скриншотов для начала:
http://savepic.su/7345763m.jpg (http://savepic.su/7345763.jpg)http://savepic.su/7401058m.jpg (http://savepic.su/7401058.jpg)http://savepic.su/7399010m.jpg (http://savepic.su/7399010.jpg)


Теперь о минусах и плюсах.

Плюсы:
+ Это выглядит наиоблее реалистично из всех возможных вариантов создания ночных моделей на данный момент.

Минусы:
- Это жрет большее количество ресурсов, чем обычная;
- Довольно геморный процесс изготовления, который потребует дополнительных знаний 3dsMax;
- К сожалению, можно сделать только белый источник освещения.

Как видно, плюс всего один, зато сразу три минуса, поэтому, прежде, чем развернуть спойлер подумайте о том, надо ли оно вам. К тому же, тщательно выбирайте здания, в которых оно надо, в которых нет, потому что большие тяжелые здания станут еще тяжелее, особенно ночью, и сейчас вы поймете, почему.

Итак, разворачивайте спойлер и изучайте:


Пока я пишу этот урок, я сам "онлайн" делаю модель. Ну, собственно, для начала необходимо сделать саму модель. Само собой, что описывать этот момент я не буду, к тому же урок все равно предназначен для уже более-менее опытных пользователей 3dsMax. В-общем, создаем нашу модель. Я буду делать на примере здания вокзала Придонская, у меня получилась такая модель:
http://savepic.su/7389797m.jpg (http://savepic.su/7389797.jpg)
Текстурить все это дело надо самым обычным образом, запекать и накидывать текстуру. Единственное отличие, это все те полигоны, которые у нас являются лампочками, т.е. будут светиться, их лучше вынести в какое-то отдельное место на текстуре, чтобы их потом было проще в ФШ осветлить. Но это опять же не обязательно, я первые модели делал без этого. И не завбываем бекапиться. Например, нам очень важно иметь бекап, где уже все готово к запеканию, т.е. сделана раскладка и все дела, но на модели еще исходные текстуры. Бамп работает аналогично.

Собственно, весь процесс создания данного вида ночника начинается сразу после того, как модель с текстурами стоит готовая к экспорту. С текстурами у меня получилась вот такая модель:
http://savepic.su/7387751m.jpg (http://savepic.su/7387751.jpg)
Собственно, здесь я покажу, как быть, когда у нас есть альфа-канал (перилки) и прозрачное стекло (навесы). Т.е., скажем так, полный фарш. Почему, казалось бы, обычные вещи являются полным фаршем, увидите, позже.
Когда текстуры готовы, накидываем их на здание. И вот, в принципе, процесс начался. В первую очередь, качаем этот архив:
https://yadi.sk/d/AdT6_4I7u5w6g
Тут скрипт и пресет для макса, для ночи. Само собой, что я не настаиваю на нем, просто у меня этот пресет прекрасно работает. Ставим и настраиваем источники освещения. Их надо ставить в тот бекап, который был создан до запекания! Чтобы на модели были исходники, а не запеченая текстура!
Свет делается самым обычным образом, ставятся обычные VRayLight и настраиваются по вкусу. Вот, что у меня получилось во вьюпорте и на рендере:
http://savepic.su/7392870m.jpg (http://savepic.su/7392870.jpg)http://savepic.su/7390822m.jpg (http://savepic.su/7390822.jpg)
Если есть засветы, то не обращаем на них внимания, технология свечения в ТРС делается немного по иной схеме. Поэтому, если мы где-то не видим текстуру из-за засвета, это в некотором смысле даже хорошо. После создания первой модели, поймете, почему.

Теперь, когда у нас все практически готово в максе, за исключением нескольких моментов, можно потихоньку начать это экспортить в ТРС. Значит, создаем новый ассет и кидаем в него тот скрипт, что был в архиве. В конфиг прописываем следующие строки:

class "Light"
script "light.gs"

Там, где у нас дерево мешей, прописываем вот эти строки:

mesh-table
{
default
{
mesh "mesh.im"
auto-create 1
}

day
{
mesh "day.im"
att "a.point1"
auto-create 0
light 1
}

night
{
mesh "night.lm"
att "a.point1"
auto-create 0
light 1
}
}

Я бы советовал на первое время использовать все названия мешей такие, как я буду говорить.

Теперь самый ответственный момент!
Ответственен он тем, что от этого зависит производительность модели. Нам необходимо снова открыть макс и детачить наше здание на две части. Одна из этих частей должна содержать те полигоны, на которые попадает свет от источников освещения. Надо выбирать крайне тщательно, конечно не до фанатизма, но чем лучше будут отделены эти полигоны от неосвещаемых, тем лучше!
Я у себя разбил вот таким образом:
http://savepic.su/7363192m.jpg (http://savepic.su/7363192.jpg)
Теперь инфа для тех, у кого либо нереально сложно разбить, либо же освещается ваще все здание:
Если получилась такая ситуация, то делаем простой треугольник, делаем его невидимым, не надеваем текстуру и принимаем его за ту часть, которая не освещается!
Ставим строго по центру точку, которая будет называется a.point1. Я предпочитаю ставить ее в IMEditore, но это уж как угодно.
Экпортим часть, которая не освещается, либо же невидимый треугольник, вместе с этой точкой и называем меш mesh.im. Само собой, что вместе с ним будут текстуры, все как положено, все так и надо, отправляем это дело в наш ассет.
Следующим делом экспортим ту часть, которая у нас освещается. Ее тоже экспортим обычным способом, только называем day.im. Итак на данный момент, у нас все готово для работоспособности дневной версии. Переходим к самой сложной части: ночной.

Воттут необходимо принять решение. Если у нас относительно общего кол-во поликов не так много получилось в освещаемой части, то имеет смысл сделать для нее отдельную текстуру. Если много, то можно использовать ту, что уже есть. Ну, а если у нас использовался невидимый треугольник, то тогда однозначно имеет смысл оставить существующую. Я в своем варианте сделаю еще одну текстуру.
Перво-наперво сделаем самое интересное: запечем альфа-канал освещения! Создаем новый материал, где в диффузку кидаем простой белый цвет без единой текстуры. Да, именно белый. А вот те места, где у нас есть что-то прозрачное или какая-то альфа, там мы должны сделать следующее: чтобы не попасть в просак (как я только что), дам один совет. У нас по-любому назначены отдельные материалы на полигоны с альфой или прозрачностью, поэтому смело именно в тех же материалах просто меняем диффузку на белый и все. Чтобы и альфа осталась и прозрачность. А вот все остальное можно тупо фигачить белым сплошняком.
Теперь либо печем текстуру с уже готовой раскладкой, либо делаем новую чисто на освещаемую часть. Лично я создаю новую раскладку.
Т.е. с белой диффузкой получается следующим образом:
http://savepic.su/7353979m.jpg (http://savepic.su/7353979.jpg)
Собственно говоря, печем обычную VRayCompleteMap с новым пресетом, готовой карте делаем сразу инверсию и сохраняем оба варианта текстур:
http://savepic.su/7346813m.jpg (http://savepic.su/7346813.jpg)http://savepic.su/7347837m.jpg (http://savepic.su/7347837.jpg)
И аналогично запекаем обычную диффузку, если нам нужна новая раскладка.
Учитывая, что у нас есть перилки, где для дырок применялся альфа-канал, нам необходимо просто скопировать ту часть текстуры из "нормального" альфа-канала в TGA, в наш VRayCompleteMap.

Возвращаемся в макс, там нам надо сделать клон той части, которая освещается. В принципе, сейчас можно удалить все, кроме нее, чтобы не мешалось. Значит, просто делаем клон и оставляем как есть. На первый клон надо нанести новую диффузку и первую альфу. На второй клон ту же диффузку и инверсию альфы.
Первая альфа у нас будет просвечивать ровно то, что освещается, ей же надо сделать самосвечение. Вторая часть с инверсией без самосвечения. Я изначально не хотел на второй клон никакую альфу кидать, но, зараза, мерцает. Поэтому пришлось инверсию делать. Но по этой причине у нас все равно здание будет немного просвечивать. Чтобы этого избежать внутрь пихаем простую плоскость весом в 2 треугольника, на которую просто кидаем текстуру m.notex черного цвета.
Ну и экспортим все это добро с названием night.im. Т.е. вот, как должна выглядеть наша night.im в IMEditore:
http://savepic.su/7369343m.jpg (http://savepic.su/7369343.jpg)
Значит, практически все готово. Теперь надо учесть, что ночная меш у нас привязывается через lm-лодирование. Поэтому надо закинуть txt со ссылкой на lm, который так и называем: night.lm. Если что, в него можно закинуть следующий текст:

version 1.0

offset = 0.01;
calcPoint = center;
multiplier = 1.0;
animationCutOff = 0.00;
attachmentCutOff = 0.09;


mesh("1.0") {
name="night.im";
}

Ну а теперь запускаем и огорчаемся, что где-то мы да напортачили. Если это так, объясню почему. Я делаю только пятый или шестой ассет по этой технологии и сам до сих пор косячу. Конкретно этот раз у меня удался на славу, справедливости ради, единственное, в чем я косякнул, это в том, что не те полики выделил в максе, когда экспортил ночь. В остальном, собралось не так уж и плохо. Поэтому, я сейчас опишу не процесс создания, а как это вообще работает, чтобы был понятен сам принцип работы модели, а уже ошибки можно корректировать с этим учетом.
Значит, работает следующим образом. Есть у нас база, которая не освещается, она не переключается. Она и есть база. Есть у нас скрипт, который переключает день на ночь в зависимости от времени суток. Соответственно, когда у нас день, то у нас все работает обычным принципом. Когда наступает ночь, у нас выключается дневная меш и включается ночная. Ночная меш из себя представляетобычную текстуру, на которую накинут альфа-канал освещения. Т.е. у нас видно ровно то, что должно быть видно от источника света. Но если оставить так, то когда у нас хоть что-то видно, у нас и будет такое прозрачное здание, у которого и видно только освещенное. Поэтому вместе с ним стоит клон, на котором обычная диффузка. Та, что освещается, она с самосвечением, та, что нет, она без самосвечения. Т.о. у нас неосвещенные полигоны изменяют свою яркость по стандартным настройкам освещенности Трейнз. К ней применена инверсия, потому без нее наложение поликов мерцает. Из-за того, что у нас инверсия не дает в сумме абсолютную непрозрачность, приходится все же ставить фоновую плоскость, которая просто черного цвета, чтобы мы сквозь здание не увидели случайно деревья за ней. Но это не везде нужно, например, на платформах в ней нет смысла, потому что роль этого "бэкдропа" выполняет сама поверхность земли. Вот как-то так это и работает.


Если же все получилось с первого раз, то радуйтесь!

А теперь пару моментов и пару интересных фишек:

- ТРС возможно будет жаловаться на ассет, предупреждая, что lm-лодирование должно иметь точку и что-то там с 500 треугольниками. Соответственно, точку просто добавляем, а с 500 думайте сами. Я обычно кладу на это.
- Если нам надо добавить горящие окна, то мы их просто добавляем к ночной меши по обычной технологии, слегка выдвинув полики.
- ЛОДирование производится следующим образом: каждая из этих трех мешей должна лодироваться отдельно и прописываться в дерево lm.txt. Соответственно, если у нас лодируется вообще все, то и mesh.im и day.im надо вписывать в mesh-table тоже через lm, а не im.

В-общем, как-то так. Комментируйте, предлагайте свои идеи, будем вместе их решать.

И самое главное:
Будьте очень аккуратны с количеством таких ассетов! Как видите, ресурсы они жрать будут много больше, чем простой ассет. По возможности избегайте такие ночники, делайте только на паре основных зданий на всю станцию и достаточно.


В-общем, в итоге мы имеем вот такой замечательный домик на станции Придонская:
http://savepic.su/7341694m.jpg (http://savepic.su/7341694.jpg)http://savepic.su/7346814m.jpg (http://savepic.su/7346814.jpg)http://savepic.su/7344766m.jpg (http://savepic.su/7344766.jpg)
http://savepic.su/7400049m.jpg (http://savepic.su/7400049.jpg)http://savepic.su/7398001m.jpg (http://savepic.su/7398001.jpg)



А вот ссылка на сам "подопытный образец". Отправлен на ДЛС, искать под куидом: <kuid:502415:106670>
У кого нет ДЛС, или если он там еще не появился, то вот ссыль — https://yadi.sk/d/28KM23SWuGWGi

SKLEROZZ
17.08.2016, 00:31
B.U.G.O.R., надо теперь знающим оценить ресурсозатраты. Но в целом, вещь стоящая.

А по поводу того,
на которые попадает свет от источников освещения. Надо выбирать крайне тщательно
можно смотреть прямо в максе, включив во вьюпорте-перспективе отображение света. И сразу станет ясно, что освещается, что нет.

5Д49
17.08.2016, 00:36
Бугор, а с простыми фонарями такая шняга прокатит?

SKLEROZZ
17.08.2016, 00:42
с простыми фонарями такая шняга прокатит
С любыми объектами прокатит. Главное, все правильно сделать и свет выставить.

TRam_
17.08.2016, 01:00
Кстати, от прописывания light 1 и light 0 в данном контексте смысла никакого. Данный тег отвечает на восприимчивость к направленному освещению солнца, которого в теории никто настраивать ночью не будет. А так всё более-менее верно. Единственное что - нет гарантии что несветящаяся полупрозрачная мешь не будет пропадать под определёнными углами или у определённых мешей (т.к. прозрачность складывается, фактически, в случайном порядке) - как в данном случае с козырьками, решёткой перил и необходимой из-за этого чёрной мешью внутри, но это опять же проверяется опытным путём. Решение - не добавлять эти полигоны в освещаемый-отцепляемый кусок меши.

---------- Сообщение добавлено в 23:59 ---------- Предыдущее сообщение размещено в 23:57 ----------


Бугор, а с простыми фонарями
к фонарям также нужно то, что они освещают. Типа куска забора, куска дороги, куска лужайки и т.п.

---------- Сообщение добавлено 17.08.2016 в 00:00 ---------- Предыдущее сообщение размещено 16.08.2016 в 23:59 ----------


К сожалению, можно сделать только белый источник освещения.
а что, жёлтый нельзя? Просто прописав нужные цифры в self-illumination ?

B.U.G.O.R.
17.08.2016, 01:04
нет гарантии что несветящаяся полупрозрачная мешь не будет пропадать под определёнными углами или у определённых мешей
У меня нигде такого не было.

а что, жёлтый нельзя? Просто прописав нужные цифры в self-illumination ?
Честно сказать, я не пробовал. Надо потестить, может еще и этот минус уйдет. Мне казалось, что только белый можно делать, ведь мы по сути, не освещаем ничего, а просто не даем "затмиться темнотой" то, что освещается от фонарей согласно альфа-каналу. Соответственно придаь желтый оттенок текстуре у меня не получалось.

TRam_
17.08.2016, 01:08
У меня нигде такого не было.Вот это имею в виду, пропадание двери и стены:

http://i.piccy.info/i9/21f12d0b5d1ad24806335170f7f27a0e/1471385218/22841/1054311/7398001_500.jpg (http://i.piccy.info/i9/eff1ed064c7b5ceec24a110484d43032/1471385216/471078/1054311/7398001.jpg)http://i.piccy.info/a3/2016-08-16-22-06/i9-10171895/500x279-r/i.gif (http://i.piccy.info/a3c/2016-08-16-22-06/i9-10171895/500x279-r)

Решением было бы отделение внешних (неосвещающихся своим фонарём) решёток, прописыванием их текстуре однобитной альфы и тега Compression=DXT3 в её texture.txt (дабы небыло чёрного контура)

B.U.G.O.R.
17.08.2016, 01:10
А, ты про такое наложение. Я думал, ты о тех клонах, которые с инверсией альфы и без нее. Ну, тут хз. На самом деле, меня лично такое не очень парит, потому что ночью, как правило, подобного не видно все равно.

TRam_
17.08.2016, 01:13
Я думал, ты о тех клонах, которые с инверсией альфы и без нее.
ну, это тоже может проявиться, но, как я уже сказал, не всегда и не везде. В данном случае обошлось без этого.

yuz6099
17.08.2016, 06:40
А можно ли таким способом освещать большие помещения внутри? Например, депо или большие цеха.

tarasik
17.08.2016, 08:48
А почему нельзя сделать ночную модель просто накинув на нее текстуру запеченную с источниками света?

SKLEROZZ
17.08.2016, 09:48
А почему нельзя сделать ночную модель просто накинув на нее текстуру запеченную с источниками света?

В ТРС будет все блекло и тускло

tarasik
17.08.2016, 11:17
Рома если я не ошибаюсь так тележки на ЧС8 подсвечивал, и все норм смотрелось.

---------- Сообщение добавлено в 11:17 ---------- Предыдущее сообщение размещено в 09:58 ----------

И как раз можно цвет света каким угодно сделать.

B.U.G.O.R.
17.08.2016, 11:33
А почему нельзя сделать ночную модель просто накинув на нее текстуру запеченную с источниками света?
Потому что будет вот такая хрень:
http://savepic.ru/10987583m.jpg (http://savepic.ru/10987583.jpg)
У тебя же неосвещенные места остаются темными в ТРС, соответственно утром, вечером и так далее, эти места темными и останутся, потому что это текстурно. А с этим способом у тебя все, что не освещенное, будет изменяться согласно движку ТРС. Это основное, почему я решил делать таким способом.

---------- Сообщение добавлено в 11:33 ---------- Предыдущее сообщение размещено в 11:32 ----------


А можно ли таким способом освещать большие помещения внутри? Например, депо или большие цеха.
Да что угодно.

SKLEROZZ
17.08.2016, 14:03
Бугор, подробнее бы осветить вопрос ЛОДирования таких вещей, чтобы прям с куском конфига. А то что-то непонятнг .

TRam_
17.08.2016, 14:45
вопрос ЛОДирования таких вещей
лодирование для подключаемых через привязку мешей делается через .lm.txt файл (и эти меши в конфиговых лодах естественно не участвуют). А лодирование основной меши, возможно, делается ровно точно так же как и в остальных случаях.

---------- Сообщение добавлено в 13:45 ---------- Предыдущее сообщение размещено в 13:31 ----------

То есть нет. Для переключаемой меши вовсе никакой привязки не должно быть к той меши котороая с конфиговым ЛОДом. Просто должна быть добавлена без какой-либо привязки

B.U.G.O.R.
17.08.2016, 19:44
Скриптеры, можете глянуть скрипт, как он с производительностью? Что-то у меня какая-то лютая просадка ФПС пошла по всей карте. Не уверен, что из-за этого, но я склоняюсь к этому.

Эрендир
17.08.2016, 19:50
как он с производительностью?
Ужасно. С ростом количества подобных объектов на карте падение производительности будет по экспоненте.

B.U.G.O.R.
17.08.2016, 20:04
А есть возможность сделать какой-то более производительный скрипт для этого дела? Я так понимаю это из-за того, что он с какой-то периодичностью спрашивает у ТРС: "Который час?", да?

TRam_
17.08.2016, 20:07
Нужно переделывать по аналогии с моим от "lamp_01_2" (точнее со скриптовой библиотекой от него).

SKLEROZZ
17.08.2016, 20:08
Скриптеры, можете глянуть скрипт

Может из-за него такие мерцания появляются? Что один объект делаешь, все норм, другой мерцает.

TRam_
17.08.2016, 20:10
Я так понимаю это из-за того, что он с какой-то периодичностью спрашивает у ТРС: "Который час?", да?
и с этим запросом постоянно висит в очереди. Если возьмёшь принцип как у моей библиотеки, то опрашивать будет только одна она, и меши переключать тоже порциями по 100 штук.

---------- Сообщение добавлено в 19:10 ---------- Предыдущее сообщение размещено в 19:09 ----------


Может из-за него такие мерцания появляются?
нет, мерцания - это из-за принципа работы видекарты. Которая считает числа, а при расчётах возникают ошибки вычисления. Из-за ошибок оно и мерцает.

B.U.G.O.R.
17.08.2016, 20:11
Т.е. если я для всех таких ассетов сделаю тот же скрипт, но в библию, и все ассеты будут тянуть скрипт из той библии, будет нормально, да? Я ж просто не смогу скрипт переписать, я понятия не имею, как он работает. Это старый-старый скрипт, который хз, откуда у меня.

SKLEROZZ
17.08.2016, 20:20
мерцания - это из-за принципа работы видекарты. Которая считает числа, а при расчётах возникают ошибки вычисления. Из-за ошибок оно и мерцает
И от чего зависит количество таких ошибок расчетов? Просто в одном случае все работает как часы, в другом мерцает.

---------- Сообщение добавлено в 20:20 ---------- Предыдущее сообщение размещено в 20:18 ----------


зависит количество таких ошибок
Не от размеров объекта, случайно?

Эрендир
17.08.2016, 20:21
то из-за принципа работы видекарты
Видеокарта тут не причём. Это проблема движка, а точнее реализации z буфера.

Т.е. если я для всех таких ассетов сделаю тот же скрипт, но в библию, и все ассеты будут тянуть скрипт из той библии, будет нормально, да?
Нет. Будет тоже самое

---------- Сообщение добавлено в 20:21 ---------- Предыдущее сообщение размещено в 20:20 ----------


Не от размеров объекта, случайно?
Нет. Читай тут (https://ru.wikipedia.org/wiki/Z-буферизация)

TRam_
17.08.2016, 20:38
Это проблема движка, а точнее реализации z буфера.
да нет. Этот эффект называется Z-конфликт(по твоей ссылке тоже есть) и он присущ любому движку, вопрос только том, для какого расстояния между полигонами она начинает срабатывать. Причём чем меньшее расстояние мы вкладываем, тем меньшую дальность прорисовки получим. Напомню - речь насчёт мерцания была не о том, "почему полупрозрачные меши не сортируются" (это да, особенности OpenGL и движка), а "почему мерцает полупрозрачная мешь на фоне непрозрачной".

Эрендир
17.08.2016, 20:45
Этот эффект называется Z-конфликт
Ну а я что написал? Специально ссылку дал, где об этом можно прочитать.

SKLEROZZ
17.08.2016, 20:46
Z-конфликт

И как в нашем случае с ним бороться? И почему он в одном случае есть, в другом его нет?

TRam_
17.08.2016, 21:03
SKLEROZZ, бугор и написал -


Ночная меш из себя представляетобычную текстуру, на которую накинут альфа-канал освещения. Т.е. у нас видно ровно то, что должно быть видно от источника света. Но если оставить так, то когда у нас хоть что-то видно, у нас и будет такое прозрачное здание, у которого и видно только освещенное. Поэтому вместе с ним стоит клон, на котором обычная диффузка. Та, что освещается, она с самосвечением, та, что нет, она без самосвечения. Т.о. у нас неосвещенные полигоны изменяют свою яркость по стандартным настройкам освещенности Трейнз. К ней применена инверсия [альфа-канала], потому без нее наложение поликов мерцает. Из-за того, что у нас инверсия не дает в сумме абсолютную непрозрачность, приходится все же ставить фоновую плоскость, которая просто черного цвета, чтобы мы сквозь здание не увидели случайно деревья за ней. Но это не везде нужно, например, на платформах в ней нет смысла, потому что роль этого "бэкдропа" выполняет сама поверхность земли.

---------- Сообщение добавлено в 20:03 ---------- Предыдущее сообщение размещено в 20:00 ----------


И почему он в одном случае есть
потому что в одном случае в при ориентации камеры игрока с одним направлением при расчётах получаются одни ошибки вычислений, а при другой - другие. Либо разносить плоскости чтоб ошибка не влияла (но тогда "отставание" будет хорошо заметно вблизи), либо по методу BUGOR'а - делать для фона обратный (инвертированный) альфа-канал, т.к. полностью прозрачное невидимо, потому не мерцает.

SKLEROZZ
17.08.2016, 21:03
К ней применена инверсия [альфа-канала], потому без нее наложение поликов мерцает.

И с ее наложением все-равно мерцает

TRam_
17.08.2016, 21:09
Значит речь о другом -
Единственное что - нет гарантии что несветящаяся полупрозрачная мешь не будет пропадать под определёнными углами или у определённых мешей (т.к. прозрачность складывается, фактически, в случайном порядке)

и тут особо ничего не поделаешь, разве что попытаться уменьшить количество полигон, которые освещены или попробовать повернуть модель например на 90 или 180 градусов, возможно от изменения порядка расчётов сложение альфы будет идти по-другому.

B.U.G.O.R.
17.08.2016, 21:41
А что со скриптом-то делать? Господа скриптеры, сможете накатать годный скрипт, чтобы не просаживалась производительность?

TRam_
17.08.2016, 22:05
думаю да

B.U.G.O.R.
17.08.2016, 22:12
Шикарно, будем ждать!

TRam_
18.08.2016, 00:42
https://yadi.sk/d/pEUhcMKouJ9G6

---------- Сообщение добавлено в 23:42 ---------- Предыдущее сообщение размещено в 23:40 ----------

[хотя можно было ещё быстрее, но решил немного поулучать старые алгоритмы]

P.S. на ДЛС свою библиотеку тоже отправил

B.U.G.O.R.
18.08.2016, 11:48
Так, я ща не очень врубился, скрипт будет тянуться из библиотеки или же из корня ассета? Я просто к тому, что как остальные переделывать? Я вижу скрипт в самом ассете, но и вижу, что он ссылается на библиотеку.

---------- Сообщение добавлено в 11:39 ---------- Предыдущее сообщение размещено в 11:32 ----------

Все, понял. Щас урок поправлю в соответствии с этим делом.

---------- Сообщение добавлено в 11:48 ---------- Предыдущее сообщение размещено в 11:39 ----------

То ли мне кажется, то ли ситуация не сильно поменялась..

TRam_
18.08.2016, 12:00
Все, понял.
и что понял, что дело в kuid-table :) ?



То ли мне кажется, то ли ситуация не сильно поменялась..
можешь проверить на участке карты вдали от светильников. Или днём. Потому что ночью "работает" 8-битная альфа, а она штука тяжёлая.

B.U.G.O.R.
18.08.2016, 12:20
и что понял, что дело в kuid-table ?
И в этом тоже, да. На сколько я понял, в ассете скрипт, который говорит, что скрипт мы будем брать из такого-то названия, и по этому названию идет поиск через куид-тейбл твоей библиотеки.

можешь проверить на участке карты вдали от светильников. Или днём.
А я так и проверял. А у тебя ФПС вырос?

8-битная альфа
У меня, кстати, 24 битная.

TRam_
18.08.2016, 13:33
У меня, кстати, 24 битная.
24-битное у тебя RGB. 24/3 = 8. А собственно изображение у тебя 32-битное (24 + 8). Иную битность trainz не поддерживает.

А у тебя ФПС вырос?у меня нет карты с расставленными на всём её протяжении объектами, сравнить не с чем. Кстати, можешь попробовать удалить библиотеку и проверить что будет с ФПСом - если всё то же самое, то дело не в работе скрипта.

B.U.G.O.R.
18.08.2016, 14:00
Ок, потестирую.

5Д49
19.08.2016, 14:36
То ли мне кажется, то ли ситуация не сильно поменялась..
Не знаю.. Когда поставил на своей карте сначала твое здание и врубил ночь то да просадка фпс была хорошая... А когда скачал здание TRam_`а то как было 60 фпс так и осталось :)

CFM
20.08.2016, 18:20
В чём всё-таки суть? В том, что за неосвещенной мешью стоит мешь с самосвечением, которая просвечивает через неосвещенную с помощью альфы?

TRam_
20.08.2016, 18:40
CFM, что и то и то просвечивает, в одних местах - с самосвечением, в других - неосвещённая

CFM
20.08.2016, 21:58
Еще непонятнее. Зачем просвечивать светящейся меши?

TRam_
20.08.2016, 22:11
CFM, накладывать светящуюся и несветящуюся мешь так, чтоб где одна прозрачна другая непрозрачна и наоборот. Позволяет в некоторых случаях избавиться от мерцания мешей, даже если они поставлены "одна в другой".

B.U.G.O.R.
20.08.2016, 22:12
Зачем просвечивать светящейся меши?
А как иначе? Если ей не просвечивать, то будет светится все здание. А нам надо, чтобы светилось только то, куда падает свет от источника.

TRam_
20.08.2016, 22:12
маски самосвечения не поддерживаются же.

CFM
20.08.2016, 22:14
Если ей не просвечивать, то будет светится все здание.
А я думал, что светящаяся мешь полностью закрывается несветящейся, в которой альфой "проделано отверстие" в виде световых пятен.

TRam_
20.08.2016, 22:43
CFM, светящаяся тоже "вырезана по форме отверстия"

CFM
21.08.2016, 13:13
Это я понял, но не понимаю, зачем, если светящаяся мешь и так прикрыта обычной?

B.U.G.O.R.
21.08.2016, 14:17
зачем, если светящаяся мешь и так прикрыта обычной?
Вот потому и надо. Ты считаешь, что светящаяся прикрыта обычной, а я планировал делать наоборот, чтобы обычная была прикрытая светящейся. И технически, оба эти определения верны. А на самом деле, ничего ничем не прикрыто: они в абсолютно тех же координатах. Если не делать этого, все будет мерцать.

CFM
22.08.2016, 01:45
Вот я тоже подумал, почему бы не наложить на обычное здание светящуюся мешь с вырезанными пятнами света? Не получится?

TRam_
22.08.2016, 01:53
CFM, вспоминается анекдот про жирафа

как бы уже 6 страниц обсуждаем это

CFM
22.08.2016, 05:36
Вы меня простите заранее, если я не допираю. Но я реально не допираю. Написано сумбурно, растянуто, а моё восприятие требует конкретности и лаконичности.

Эрендир
22.08.2016, 07:40
CFM, потому что из-за z-буфера малой точности (для кабин это ещё более критично, так большая часть буфера расположена в первых нескольких метрах) наложенные друг на друга полигоны, расположенные в одной плоскости (или с малым углом по отношению друг другу) будут ужасно гадко мерцать.

CFM
22.08.2016, 11:45
Эрендир, этот момент понятен и вопросов никогда не вызывал, мне было интересно другое - можно ли не дырявить альфой неосвещаемую мешь, не засовывать в неё какие-то чёрные полигоны, а оставить как есть и лишь накладывать на неё (не в одной плоскости, естественно) мешь с самосвечением и альфой.

TRam_
22.08.2016, 11:52
лишь накладывать на неё (не в одной плоскости, естественно)
в том то и проблема, что расстояния между плоскостями и попадают ниже ошибки расчёта расположения точек её точек. А если отодвигать, то это становится заметно, особенно при виде сблизи.

В какой-то степени для удалённых объектов это можно компенсировать ЛОДами (дальше находишься - дальше плоскости), как собственно и реализовано в мешах сигналок z7 и sU, но это полумера. Для плоскостей, которые смотрятся под острым углом (например освещённый перрон) это не подходит.

ZZz0nT/
22.08.2016, 12:59
Делал с помошью Альфа канала и запеченного света (наверно так-же в кабинах свет делают, я не знаю) в Тане нечего не мерцает, цвет, свет, все настраивается в фш. В 12ке однако небольшие мерцания присутствуют.
https://img-fotki.yandex.ru/get/112407/49402661.0/0_1b81cd_603170bb_L.jpg (https://fotki.yandex.ru/next/users/zzz0nt/album/492320/view/1802701)

Эрендир
22.08.2016, 20:58
ZZz0nT/, в тане z-буфер вроде как глуюже, чем в 12. Зато в кабинах там всё стало плохо, по сравнению с 12

TRam_
23.08.2016, 01:19
Зато в кабинах там всё стало плохо
но зато есть дальность прорисовки не только снаружи, но и в кабинах, благодаря этому же.

CFM
23.08.2016, 16:20
То есть, з-буфер неточен как вдали, так и вблизи? А самая точная область - на среднем плане?

TRam_
23.08.2016, 16:44
CFM, по крайней мере в 12ке наилучшая точность вблизи, с удалением падает. Вдали - точность наименьшая.

Связано с расчётом перспективы. Если отображать в изометрическом представлении, точность была бы одинакова.

Donate with PayPal button

New New