![]() |
Ответ: Странное.
|
Ответ: Странное.
Нормали как-то странно пляшут, ты случаем их не высчитываешь в вершинном шейдере и потом применяешь в пиксельном уже результат? Лучше это делать в пиксельном, тогда будет в разы лучше результат, и некрасивостей с нормалями таких не будет..
А вообще, молодцом что шейдеры стал познавать лучше, только лучше не в RenderMonkey, а в блокноте.. |
Ответ: Странное.
Это у меня модель дико косячная :) Она с 3 версии макса прошла до 9 все версии а потом через 3дс вернулась в восьмую :) Походу всю поверхность перенатянуть надо. Но если смогу прикрутить глос и как-то приделать ихние спаркле будет супер шейдер с тучей настроек :)
|
Ответ: Странное.
|
Ответ: Странное.
|
Ответ: Странное.
Только туда бы ещё кубмапу ввалить по Френелю или какому параметру из шейда машины, вот там где затенение - заместо него кинуть именно кубмапу (курни Fresnel shading).
|
Ответ: Странное.
|
Ответ: Странное.
Вложений: 1
стэлс машина
HD 6850 M Win7 |
Ответ: Странное.
|
Ответ: Странное.
машина появилась
|
Ответ: Странное.
|
Ответ: Странное.
|
Ответ: Странное.
Про солнышко, всё просто: есть у тебя вектор - где сейчас солнце находится. И есть у тебя вектор между камерой и пикселем на скайбоксе. Делаешь DOT этих двух векторов, и далее математикой или по условию, выбираешь то что больше 0.95 - то солнце, а что меньше - то небо.
|
Ответ: Странное.
![]() Это анализ нормали. float deg=dot(input.viewVec,input.normal); if(deg>0.98){diffuse=float4(1,1,0,1);} Причем как управлять позицией мне не ясно :) ![]() Это анализ расстояния от пикселя в центре солнца float3 sunpos=50*float3(0,1,0); float3 pixpos=input.pos2.xyz; float3 vecpixsun=sunpos-pixpos; float dist=length(vecpixsun); if(dist<4){diffuse=float4(1,1,0,1)} И, да простит меня Мока, управление позицией элементарно, диаметр тоже легко изменить, ну и контур менее зависим от геометрии небосклона. |
Ответ: Странное.
|
Ответ: Странное.
Погляди на оф.форуме. Там товарищ ascii1457 уже делал шейдеры неба с солнцем. Может наведет на какие-то мысли.
|
Ответ: Странное.
Да и я в RUST'е делал, с изменением размера динамично исходя из положеня, ведь в зените будет маленькое..
Вот вырезки из шейдера, за стиль приношу извенения, раньше опыта и дисциплины не хватало: Код:
VecSky.xyz = normalize(PosCam-IN.pWorld); VecSun - это вектор (переменная), которую ты посылаешь с кода. Вектор от камеры, где солнце находится, например { 0,1,0 } - это вертикально сверху. SizeSun нада большим числом, попробуй сперва 10f например, потом поэксперементируй, я не помню уже. Собственно и всё. На деле всё ОЧЕНЬ просто, и можно без проблем регулировать и положение и размер, и цвет да что угодно. Не мудри с нормалями - они не стабильны, используй как предложил вектор между камерой и позицией пикселя. Глянь RUST, я когда-то делал небо там, правда сейчас бы сделал лучше, но там неплохо закат был имхо. |
Ответ: Странное.
Мока, я сделал по другому. Семантикой получаю направление света. Умножаю его на -1. Умножаю на масштаб вывернутой наизнанку сферы прикидывающейся небосводом. Це позиция светила на небесной сфере. Потом вычитая из позиции центра солнца позициею пикселя имею вектор. Длину которого узнать изноупроблем. Если длина меньше радиуса светила, то цвет подменяется на цвет солнца в этой точке.
Профит. Автоматически управляемое хорсом солнце одинакового диаметра независимо от позиции. И да, я не использую нормали, я просто рисую на сфере. Надо бы вкуриться в то как расписывают купола, но это будет уже не нормально :) Просто снижение яркости картинки при взгляде на солнце это HDR? По моему это должно быть более сложным анализом картинки, основанном на 3-4 кадрах хотя бы за секунду, что ли. |
Ответ: Странное.
Вложений: 4
Цитата:
Делай не расстояние пикселя к сфере солнца, а по векторам, как предлагаю, будет то же самое что у тебя, только без пикселизации на гранях, и абсолютной не зависимости от геометрии неба (куб, сфера, да хоть плэйн перед камерой, и т.п.). Вектор солнца - также из семантики можно без проблем вычислить - это тупо нормализированная позиция солца - позиция камеры. UPD: Вот сделал скрины, далёкий 2008ой.. |
Ответ: Странное.
Мока, наши деревья в этом вопросе сильно разные :)
Говоря про пикселезацию это ты намекаешь на то, что я края у солнца не смазал? Я там собирался какой-нить сложный градиент сочинить. Я скачал твой раст, завтра буду потрошить :) |
Ответ: Странное.
Цитата:
Да и это скорее я не как "лучше я думаю", а скорее с точки зрения кривости самой реализации. Если рассматривать реализацию чего-либо, алгоритма, механизма, шаблона, интерфейса, да чего угодно, то она должна как можно меньше зависеть от "потайных" правил. Например у тебя есть они - длина вектора ДОЛЖНА быть радиусом сферодомы неба. Сферодома - должна иметь достаточную триангуляцию, иначе будут артефакты. Все эти "или", "если", и т.п. - плохой тон в любой сфере программирования. Старайся их избегать, либо реюзабельность идей и даже исходника - сомнительна и специфична, тем более другими людьми. |
Ответ: Странное.
|
Ответ: Странное.
|
Ответ: Странное.
а вас не стремает писать сложный шейдер для фона? не проще солнышко по старинке нарисовать поверх неба? или лучше небо поверх солнца?
|
Ответ: Странное.
|
Ответ: Странное.
|
Ответ: Странное.
Цитата:
Можно сделать и текстурой уху, но никакой динамики толком не сделаешь, тем более зачем тебе текстура, если это тупо окружность? Тем более если хочешь использовать полноценный HDR, то использование цвета который ярче чем 1.0f, то именно процедурно это намного лучше реализовывать. Изменение размера тоже. Да и шустрее, чем выборки делать постоянные. Вот например использовать текстуру для проекции спутников в небе - уже другой вариант, но и тут снова, если нужна реально красота и реалестичная атмосфера, тогда вообще нужно это дело делать используя атмосферный скаттеринг (подобие Volumetric Fog), чтобы атмосфера также влияла и на всё окружение (туман), и солнце уже можно делать тупо сферой в космосе, как и спутники. В общем dsd - не занимайся извратами, серьёзно.. Это тебе пользы не принесёт. |
Ответ: Странное.
Книга Притчи > Глава 21 > Стих 29:
Человек нечестивый дерзок лицом своим, а праведный держит прямо путь свой. Книга Притчи > Глава 28 > Стих 10: Совращающий праведных на путь зла сам упадет в свою яму, а непорочные наследуют добро. :-D |
Ответ: Странное.
Че? ЛоЛ.
Поржать - стёбно. Но как ты можешь приводить вторую притчу, не зная сути обеих путей? Если ты разделяешь на "зло / добро", тогда ты должен знать, что зло, а что есть добро. Иначе у тебя будет каша и всё вперемешку. Собственно так и есть - ты очень часто в своём коде допускаешь кучу архитектурных и логических ошибок. Они не фатальны, но логика кода и тем более читабельность страдают очень сильно. Проблема наглядна: тебе не хватает базовых знаний. У меня также было раньше, ведь я тоже полностью самоучка. Я писал абы как, лишь бы работало. Но потом начал чуток почитывать мелких статей, или кусков дельной литературы на эту тему, да и сам пришёл ко многим выводам, и нынче отдаю важный приоритет не цели, а её реализации. Т.к. именно эта реализация определяет как качество выполненной задачи, так и возможность многократного использования и логических идей, так и самого кода вообще. Ты как программист - это в первую очередь твоё мышление, его чистота и сложность в тоже время. А не то что ты там когда-то написал или разработал. Поэтому я тут не антигерой как раз, а наоборот.. |
Ответ: Странное.
Я тебя затролил :)
|
Ответ: Странное.
Кстати рисование на кубике весьма здравая мысля, ибо у него нормали довольно информативны. А солнце наверно следует рисовать исходя из позиции пикселя на экране. Оно то один хрен круглое и одного размера, то есть можно считать просто радиус вектора в x/w и y/w после всех перемножений. А облачка пустить по верхней грани куба, и лепота.
|
Ответ: Странное.
Рисовать солнце в скрин спейс - не оправдано, проблема будет заключаться в перспективе, т.к. с камерой и разными FOV'ами будет лажово выглядеть. Плюс, зачем проецировать в экранные координаты, если это мировых координат объект.
Я не понимаю зачем ты упираешься от самой первой мной предложенной идеи, которая сама простая, и имеет наименьшее количество минусов из всех здесь озвученных "решений"? |
Ответ: Странное.
делать сложные расчеты в скринспей шейдере, особенно много демонического бранчинга - не оправдано.
|
Ответ: Странное.
Цитата:
Такая простая задача блин, а извращаются.. |
Ответ: Странное.
Нет там никаких убер расчетов. А уцепился я почему, поймешь если наберешься терпения и в демке на уровне зеленой травы присмотришься к смешиванию цвета облаков и цвета солнца. Притом что это корявый первый попавшийся градиент еще и растянутый из кривой пережатой жпгешки.
|
Ответ: Странное.
Цитата:
Я делал облака, и они должны быть реализованы не зависимо от атмосферы вообще. |
Ответ: Странное.
|
Ответ: Странное.
Эмм.. Тупо смешивание ADD'итивное, и что с этого?
Во первых бленд ADDITIVE для облаков - это изврат и не реалистично. Во вторых что тут такого? Точно такое же будет с солнцем отрисованным процедурно.. При этом процедурно можно сделать и покруче со всякими ореолами и т.п. |
Ответ: Странное.
Да ёклмнж!
Хотя впрочем :rolleyes: Научи меня, гуру, приведи текст шейдера и процедуры с человеческими комментариями понятными даже детсадовцу. Очень жду. Уверен не я один. Тем более ж они у тебя универсальные. Токмо xSetEntityEffect() и красотища. |
Ответ: Странное.
Цитата:
|
Ответ: Странное.
Мне больше туториал нужен, а эффект я и сам напишу :)
|
Ответ: Странное.
Цитата:
Дык, в гугле этого полно.. |
Ответ: Странное.
Не не не, я так просто от халявы не откажусь.
Так что хрен с ним тутором. Сбацай мне анимированные облачка, кульное солнышко с цветом зависящим от высоты. Шоб облачка подсвечивались в зависимости от высоты нужным цветом. И т.д. И сверху чтобы это было жирным труашдэром сдобрено. Еще ты говорил про эффект линз и т.д. быстро запускающийся экзешник с примитивом для художеств и генератор бесшовного четырехканального шума я могу таки предоставить. |
Ответ: Странное.
Цитата:
Вообще возьми пример готовый, из RUST'а, там небо уже есть. Я хочу попробовать сделать же небо используя Volume метод. С туманом и т.п. |
Ответ: Странное.
Вложений: 1
Ну я же говорил, посмотри на оф.форуме. Облака, конечно, не верх реалистичности, но все же.
|
Ответ: Странное.
Я все посмотрю, со временем... Ближе к НГ будут сдвиги :)
|
Ответ: Странное.
Як мне заставить кодеблокса не распихивать объекты по разным потокам?
Ибо: Код:
land uno(1,6,32); //скэйл ячейки, кол-во сегментов в ширину, разрешение сегмента Впихивать в один объект мне не хочется. Есть какие-нить способы приказать компилятору выполнять код последовательно? Ложная тревога я в массив писать пытался одновременно с созданием ибо скобочек дохренища. |
Ответ: Странное.
![]() Если накосячить как нить так: for(int i=0;i<uppersize-16;i=i+16){ for(int j=0;j<uppersize-16;j=j+16){}} //должен найти точную точку на побережье в избранном тайле. if(seed[i+1][j]==4){ MessageBox( NULL, i+"Ворнинг! ", "Фатальная ошибка", MB_OK | //OK (кнопки) MB_DEFBUTTON1 | //Выделеная кнопка MB_ICONEXCLAMATION | //Тип иконки MB_DEFAULT_DESKTOP_ONLY ); } }} :) |
Ответ: Странное.
|
Ответ: Странное.
МОЙ МОСК :SOS: :SOS: :SOS: ЧТО ЭТО?
|
Ответ: Странное.
Ты про то косое месиво пвседоанглийских слов или картинку?
|
Ответ: Странное.
Цитата:
|
Ответ: Странное.
Розовое ледники. Красное возможные истоки самых крупных рек. голубое случайно выбранные истоки рек. Синие, чего практически не видно фактическое местоположение реки до первой впадины заполнение и выход из которой я и описывал на своем корявом инглише. отображаемая часть моего ландшафта в этом масштабе примерно 2х2 пикселя. Черное уровень моря. Серое анализируемый ландшафт.
|
Ответ: Странное.
|
Ответ: Странное.
|
Ответ: Странное.
|
Ответ: Странное.
клевые облака.
Пили свой двиг полностью на шейдерах ;-) |
Ответ: Странное.
у позиффиката мания запилить все в свой движок\обертку xD
|
Ответ: Странное.
Цитата:
|
Ответ: Странное.
![]() PHP код:
|
Ответ: Странное.
Там странный переход заметен, угол такой..
|
Ответ: Странное.
Там градиент неба рисовался исходя из абсолютной высоты на меше, а не как следует.
![]() Первая попытка внедрения менталрэйвских кусков шейдера в мое творение. Код:
// пиксельный шейдер |
Ответ: Странное.
|
Часовой пояс GMT +4, время: 22:29. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot