Показать все 227 сообщений этой темы на одной странице |
HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- OpenGL (https://hlfx.ru/forum/forumdisplay.php?forumid=7)
-- Нубские вопросы (https://hlfx.ru/forum/showthread.php?threadid=2218)
Нубские вопросы
Я никогда не работал ни с OpenGL, ни с C++, ни с какими подобными гигантами программной части, которые используются для создания 3D игр, хотя бы уровня Half-life: Counter-Strike.
По этому позвольте в этой теме я буду задавать вопросы, которые так или иначе связаны с графической и технической частью создания игр. В качестве ответов так же принимаются ссылки на небольшие статьи (не книги).
1. 2D объекты выводятся прямо перед камерой в ортогональной проекции.
Теми же самыми методами отрисовки.
2. Больше скажу - ОпенГЛ ни сном ни духом ни про какие-то там модели или карты. Это всего лишь слой абстракции для удобства конечного пользователя. Если будет надо - можно с таким же успехом вкомпилить в приложение набор вертексов и текстур и точно так же вывести на экран.
Так иногда поступают в демках физических движков - например модельку кролика зашивают в exe.
3. В принципе новые карточки поддерживают NON Power of two текстуры.
Но лучше не рисковать. Две-три сильно некратные текстуры способны просадить фпс до нуля.
4. Это смотря что понимать под работой со светом и тенями. Если на мапперском уровне - поставил лампочку на карту и включил её, то подобные методы там тоже есть, но они как правило медленные и кол-во источников ограничено шестью-семью. То что мы нарисовали без освещения можно либо затемнить либо еще больше засветить.
Попиксельное затемнение достигается наложением лайтмап на геометрию уровня (умножением яркости лайтмапы на текстуру). Можно делать вертексное освещение (регулировать цвет вертексов). Можно наконец в реалтайме тени накладывать, либо делать засветку простым сложением яркости. Да много методов вообщем.
Вот про модели освещения почитай, если интересно:
http://steps3d.narod.ru/tutorials/l...g-tutorial.html
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
ьфч
Спасибо за ответ(ы) .
qpAHToMAS
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
code:
если(opengl_плоскость_на_пути) { действие }
qpAHToMAS можно одни и те же плоскости (точнее говоря - полигоны) скармливать как опенгл так и физическому движку. Не такого понятия как опенгл-плоскость. Плоскость она плоскость и есть. А вообще в современных играх обычно физическая модель хранится отдельно от визуальной и представляет из себя более упрощенную, низкополигональную модель.
qpAHToMAS ОпенГЛу нет дела до того, что творит физический движек с координатами. ОпенГЛ только и делает, что выводит инструкции, котоpые ему даются.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Дядя Миша, и все же не знание того, что такое "тчинки" мне не дает покоя, объясни пожалуйста.
qpAHToMAS это всего лишь функции в которых выполняется логика энтить в хл (от англ. think - "думать"). В хл можно устанавливать функцию которая будет вызвана в следующий раз: SetThink( MyCoolThink ); и время вызова: pev->nextthink = gpGlobals->time + 0.5f;
"Виртуальными потоками" я бы эту систему не назвал...
К опенгл она тем более не имеет никакого отношения.
Government-Man, на сколько я понял — это простой поток, только в его начале стоит пауза, которую не допустимо было бы поставить в место, откуда вызывается функция.
qpAHToMAS это вообще к потокам никакого отношения не имеет. Это просто вызов определенной ф-ии в определенный момент времени. Я не знаю почему Дядя Миша назвал это "виртуальными потоками".
Government-Man потому что это и есть потоки
Они же вызываются независимо друг от друга.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
qpAHToMAS короче суть такова: движок при каждом обновлении мира просматривает pev->nextthink у ентить. Если оно >= текущее_время, то вызывается DispatchThink( ентитя ). Это не "настоящие" потоки но при определенном уровне пространственного воображения можно представить что это они и есть да...
Я и не говорил что настоящие. Я сказал - виртуальные
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
qpAHToMAS
Это FillRGBA вроде.
Какие еще верхние слои, какие OpenGL фишки
Не надо себе разную ерунду фантазировать.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
/me фантазирует дальше.
qpAHToMAS повторюсь, ОпенГЛу пофиг, что рисовать. Ему от движка поступает набор координат, и параметры цвета...
PoD-Stas да много чего поступает, вообщем-то.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
qpAHToMAS рекомендую ознакомиться с понятием трансформации и с понятием прозрачности.
Дядя Миша это абстрактно
PoD-Stas тыб еще сказал - Готишно!
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Почему в играх используются разные типы "детальных текстур"? Вот например, разные цвета у текстур из одной и той же игры:
Метод работы ведь един? Или определенный цвет играет роль определенного материала в игре? Т.е. обрабатывается по другому?
qpAHToMAS ни в коем случае не говори название игры - так мы быстрее ответим на твой вопрос
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
qpAHToMAS
Ты какой то непонятный, спрашиваешь про детальные текстуры, а в аттаче DUDV и карта нормалей .
З.Ы. переведи одну из картинок в негатив, результат тебя удивит .
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
FiEctro, я думал, что все эти текстуры одинаковые по технике обработке , спасибо за их названия, теперь понял что к чему.
qpAHToMAS что-то ты совсем не то пишешь. OpenGL как и Direct3D это как бы переводчик с языка приложения на язык графического процессора. И как писал PoD-Stas "ОпенГЛу пофиг, что рисовать." Прицел в кс рисуется с помощью FillRGBA. Это движковая функция, она отношения к OpenGL не имеет. Есть набор движковых функций, отвечающих за рисование чего-либо.
Можно написать, чтобы они обращались напрямую к Директу или ГЛу (код отрисовки написан в самой функции), а можно чтобы был выбор через условие, что собственно сделано в ХЛ. Хотя нет, там механизм несколько извращённый. Вот в унреале есть отдельный рендер для ГЛ и отдельный для Д3Д, поэтому и в том и в другом режиме всё робит шустро. А в хл директ тормознутый, не спрашивай почему, лучше погугли.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Дядя Миша у меня в гл режиме хл безбожно тормозит, особенно при включении фонарика или использовании лайтстилей. В д3д все норм, но другая проблема - текстуры всегда 16-битные. И в хаммере выделение неправильно работает. У меня на ноуте эта видяха, может встроенная в обычную материнку версия чем-то отличается...
Ku2zoff, начинаю понимать .
Government-Man
Скорее всего Дрова, скорее всего Ati .
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Government-Man
Ну если интеловская то ой.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Government-Man а ксаш нормально идет?
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Дядя Миша да, ксаш нормально.
Кто-нибудь знает как реализованы перемещения вида от первого лица по карте? Т.е. например, в некоторых играх при нажатии на кнопку на стене, камера плавно перемещается в координаты перед кнопкой и проигрывается анимация нажатия кнопки v_ рукой.
Дядя Миша, будет ли такое в Xash? Например, ентитями, в места которых перемещается камера и проигрывается нужная анимация?
qpAHToMAS да ерунда это всё. Главным образом потому что кнопки брашевые и по сравнению с рукой выглядят просто огромными.
Тут не столько кодить, сколько красивые анимации нужны и рубильники модельками. А гдеж их взять?
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
У меня такой глупый вопрос.
Если в спирите 1,2 есть туман, но он не работает с Параноевским рендером, значит можно параноевский рендер отключить.. Но как?
ЗЫ: На форуме Буззера все уснули
__________________
How interesting, just look at that!
© Scientist
Почему не работает-то?
Добавлено 02-11-2010 в 15:28:
Запусти карту от спирита под параноей и посмотри что получится.
ну ту, где туман.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Разбиение экрана (split screen) и экран в экране делается же средствами OpenGL?
И реально ли это сделать в том же Xash'е, имя только его SDK?
qpAHToMAS
Можно. Но не нужно, результат убогий...
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
qpAHToMAS как в tf2? Там после смерти мультики показывают
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Ku2zoff, как в Call of Duty 4, там когда тебя убивают в мультиплеере — тут же проигрывается кусок записи (дамка), как твой киллер бежит на тебя и убивает, но на весь экран.
Дядя Миша, да как гейм-дев вообще живет с такими трудностями .
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Сам сплит-скрин сделать легко. Важно то, что именно ты собрался выводить на него.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
How interesting, just look at that!
© Scientist
Ну тогда ой.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
(_-=ZhekA=-_) Дядя Миша Дык неужели нельзя у Паранои рендер отключить/сменить на стандартный??
__________________
How interesting, just look at that!
© Scientist
Отключи\замени, кто не дает-то?
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
К.а.к.???
__________________
How interesting, just look at that!
© Scientist
-=DrTressi=- gl_renderer 0
__________________
HomePage
YouTube
RIP - Defiler Unit
Вон тебе подсказывают )
Кстати время идет, если к воскресенью салют из локусов не будет готов, мы тебя отключим на неделю и будем игнорить все твои вопросы до конца жизни )
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Хы-хы-хы! А у мну спиритовский туман работал вместе с рендером Паранойи. Правда подглючивал чуток - брашевые энтити с транспарент-текстурами были слишком тёмными в тумане.
З.Ы. Я вот никак не пойму, почему в стим-версиях ХЛ ТриАпи туман не пашет??? Габа так увлёкся обновлениями стима, что забыл скомандывать программирующему негру сменить пару строчек/символов в коде?
Ku2zoff Как работал? Как ты это сделал??
Василь Я уже пробовал.. Нифига НЕ помогает(((
Дядя Миша Похоже ты до конца жизни мне будет напоминать об этом.
__________________
How interesting, just look at that!
© Scientist
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Дядя Миша Я ни в чём не виноват. И от слов не отказываюсь! Но ты можешь прекратить мне напоминать? У меня память хорошая. Ты бы вот лучше сказал, как туман в Параное реализовать. Вот это было бы круто. А талдычить одно и тоже - не гуд))
__________________
How interesting, just look at that!
© Scientist
Вот довай салют на лоуксах - посмотрим шо там у тебе с туманом )
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
>>Ku2zoff Как работал? Как ты это сделал??
Скопипастил рендер Паранойи в Спирит. Вызывал функцию RenderFog также из V_CalcRefdef но только после RendererCalcRefDef. Ну и ещё саму её переписал: все gl заменил на gl.gl
Ku2zoff УУуу. А эт как? Можешь для особо непонятливых написать тутор?
__________________
How interesting, just look at that!
© Scientist
-=DrTressi=- не. Мне некогда. Я старый кафель на кухне полдня отрываю от стен На три минуты к компу подбегаю, глянуть сколько от фильмеца осталось качаться и что на форуме новенького.
Если чо, я тебе в предыдущем посте написал, что я сделал. Всё работало. Правда потестить не выйдет, дллка соберётся, а ресурсов нужных нету. Хотя может запустится без них, Х.З.
В аттаче клиентская дллка и opengl32.dll (оригинальный параноевский забэкапь!) без которого кое-чо в этой клиентке не работает. Попробуй под спиритом 1.7 запустить и проверь, будет ли туман.
Добавлено 06-11-2010 в 18:02:
Если будет попозже дам код.
Ku2zoff
***Попробуй под спиритом 1.7***
Не понял, Параноя же на спирите 1,2.
Добавлено 06-11-2010 в 15:25:
ЗЫ: Заменил в оригин Параное - тумана нет.
Появились тени, спрайты и свечение на стенах. А вот тумана к сожалению нет
ЗЫЫ Что с клиентом?? Там скорость жутко маленькая, никакие параметры консольные не помогают. Я до 6 этажа минут 5 полз на мапе spiritdemo
__________________
How interesting, just look at that!
© Scientist
Не по OpenGL:
Почему в HL/Xash используется UDP, а не TCP соединение? Второе ведь надежнее?
__________________
Дядя Миша, что-то типа Split-screen'а в HL все-таки сделали, я только сейчас вспомнил про эту фишку:
qpAHToMAS Это не сплит скрин, а рендринг в два прохода.
Если ошибаюсь, поправте.
__________________
Base Defense on Steam, ModDB
PLut не ошибаешься. Можно и в четыре прохода и в десять. pparams->nextview = blablabla...
Можно таким же способом зеркало заднего вида сделать
Другой вопрос, нужно ли оно?
__________________
Base Defense on Steam, ModDB
Я так понимаю, это два рендер таргета, которые отрисовывают мир с разных камер. А повтор убийства можно и на главном рендер таргете рисовать, так даже быстрее. Надо делать лог всех перемещений игроков в оперативной памяти или на жестком диске длиной где-то в 10 секунд, и каждую смерть его повторять.
__________________
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Здраствуйте
У меня возник вопрос как код делает текстуру красивой?
Wealth
Спроси у разработчиков кода.
__________________
Просто обесните плис
Wealth, "красивый" - довольно широкое понятие.
ну вот функцыя в хл простую текстуру детализырует помойму так detailtexture 1
__________________
А это будет работать для хл?
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
http://scrama.3dn.ru/publ/1-1-0-6
__________________
"Злобным гениям не нужна харизма." © Shooter__Andy
"Making stuff for an "old ugly game" can be ten times more fun than grinding on a map for a dull, next-gen title." © Lunaran
Подскажите как сделать камеру вида на верху как в играх Top Down Shooter
Wealth, поставить ее над игроком и направить вниз.
я говорю игровую камеру
Wealth точно также.
в view.cpp или tri.cpp?
Wealth набери в консоли +cammousemove и накрути положение камеры мышкой как тебе потребно. а потом -cammousemove чтобы зафиксировать.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
а кодом не получется? так чтота не получается
Добавлено 20-04-2011 в 22:33:
Дядя Миша Cпасибо разобрался . Если я не ошыбаюсь в xash нету проблем с фпс?
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Не я не про это говорю если я много npc поставлю xash сможет выдержать?
А много - это сколько?
__________________
"Злобным гениям не нужна харизма." © Shooter__Andy
"Making stuff for an "old ugly game" can be ten times more fun than grinding on a map for a dull, next-gen title." © Lunaran
Ну как в играх типа Zombie Shooter .
LODы сделай, тогда выдержит. И спаунь их только по мере приближения игрока.
Спасибо за ответ . Вот еще один баг что делать прицел не где нада
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Дядя Миша, лучше сделать, чем выше FPS - тем лучше.
Дядя Миша
интересно, как в l4d оптимизировали. там толпы почти как в сэме.
thambs, LODы и MIP-текстуры.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Подскажите есть ли бесплатный движок со своим редактором типа hge просто движки есть а редакторов нету что делать не знаю
Id Tech
Id Tech 2
Id Tech 3
DarkPlaces
QFusion
-бесплатные движки
__________________
удалено по соображениям цензуры
http://ru.wikipedia.org/wiki/%D0%9A...%B6%D0%BA%D0%B8
__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей
Хочу легкие движки с редактором .
Если некоммерческая игра, то UDK.
Хочу создать игру категория Top down shooting ну просто я хочу уже готовый движок просто добовлять по немножку свое .
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Дядя Миша Под столом ))
я негодую!
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
А вот например мне в шейдер надо переслать 2 текстурные координаты.
Где то читал, что для первой текстуры glTexCoord2f будет быстрее чем glMultiTexCoord2f ( даже по количеству параметров ). То есть для второй текстуры лучше передавать через glColor2f? ( если цвет нам не нужен )
glTexCoord2f это то же самое, что glMultiTexCoord2f для нулевого юнита, т.е. синонимы. Разве что сэкономишь место в стеке (передача на 1 переменную меньше), но эту экономию смогут заметить только высокочувствительные приборы
В шейдеры надо всё передавать через вершинные атрибуты - glVertexAttrib. А еще лучше - через массивы атрибутов - glVertexAttribPointer. Такие функции, как glBegin, glTexCoord, glMultiTexCoord, glVertex, glVertexPointer и т.п. - считаются deprecated и не рекомендуются к использованию.
__________________
А, понял, спасибо.
Для хранения экрана можно ли без опаски использовать GL_TEXTURE_RECTANGLE
( в плане с каких видеокарт они поддерживаются ), и при первом создании текстуры можно ли не создавать пустой массив данных в памяти, а просто указать NULL ?
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Да я их пока вообще не изучал. Нету надобности
Добавлено 20-05-2011 в 14:20:
Допилил, сделал эффект сепии ( надеюсь похоже ).
В nvidia sdk примерчик GL_TEXTURE_RECTANGLE идет для первого gforsа, надеюсь у ATI они тоже появились не позже чем ARBшные шейдеры.
с какой версией OpenGL лучше работать для создания кроссплатформенного приложения, чтобы шло на компах года эдак с 2006 и ноутах?
OpenGL 4.0 и более на GeForce 8 - GeForce 300 уже не пойдут, я правильно понимаю?
__________________
Использование Selection Buffer имеет подводные камни? Типа того что он глючит на ATI и т.п.?
__________________
Трагическая новость: Пятеро инженеров Casio умерли от смеха, узнав что Samsung анонсировали часы с заявленным временем работы в 25 часов
__________________
© Корпорация Вульва
__________________
"Злобным гениям не нужна харизма." © Shooter__Andy
"Making stuff for an "old ugly game" can be ten times more fun than grinding on a map for a dull, next-gen title." © Lunaran
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Есть такой вот вопрос, какие glEnable/glDisable овверайдятся шейдером, и в целом, какие могут быть подводные какмни, если написать до начала главного цикла скажет glEnable(GL_TEXTURE_2D) и glEnable(GL_BLENDING) и больше их не трогать до окончания цикла? Давно уже не занимался опенжэлем, а сейчас на новом системнике вот заново сел, но уже кучу всего позабыл
__________________
-Brain is dead-
Некорректный вопрос. Тот функционал в шейдере, которым ты заменяешь стандартную FFP-часть очевидно не будет реагировать на установку этих стейтов.
Ну например GL_TEXTURE_ENV - ты же в шейдере их будешь смешивать.
Но можно использовать встроенные юниформы, чтобы сохранить работоспособность фиксированного функционала в собственном шейдере.
Чуть-чуть инфы есть, например здесь: http://www.yaldex.com/open-gl/ch04lev1sec5.html
Вообще сайт неплохой, рекомендую ознакомиться.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Обнаружил неприятный баг на радеонах - у тонких треугольников низкая точность интерполяции вариингов.
На примере плинтуса. Передаю мировую позицию вершины через вариинг во фрагментный шейдер, и вывожу как цвет, вот какая дрянь получается. И еще похоже, что оно как-то завязано на перспективную коррекцию, потому что количество артефактов зависит от ракурса и расстояния до камеры.
На жифорсах и интелах такого нет, всё гладенькое, как и ожидалось.
Есть идеи, как забороть? Как-то вручную можно интерполировать?
Добавлено 23-06-2020 в 00:59:
Придумал корочи получать мировые координаты фрагмента через gl_FragCoord и обратную матрицу проекции. Вроде даже работает.
Добавлено 23-06-2020 в 01:30:
Надо сказать, что хоть при использовании такого способа артефакты и отсутствуют, но точность результата не высокая. Поэтому рад буду услышать альтернативные предложения.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
nemyax пробовал, никаких изменений.
Дядя Миша может, и неправильно. Глубина 24 бита, но я пробовал и 16, и 32F, и 32F с Reversed-Z, никак оно не влияет.
Обратил внимание, что артефакты лезут в том случае, если часть вершин треугольника лежит позади передней плоскости отсечения,
А не может быть такого, что вертексы по умолчанию в халфах хранятся?
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Дядя Миша маловероятно, я же везде явно флоаты прописываю. И для рейтрейсинга все координаты во флоат текстуре хранятся. Если бы вершины были в халфах, то было бы много самопересечений, ну то есть лучи с поверхности халф-треугольника попадали бы в тот же флоат-треугольник. Но такого не наблюдается, артефачат только узкие треугольники. И только на радеонах.
ncuxonaT драва поменять?
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Дядя Миша на одном радеоне дрова свежие, на втором прошлогодние, разницы нет
Слушайте, а я правильно восстанавливаю позицию из фрагкоорда?
code:
vec4 ndc = vec4(gl_FragCoord.xyz / vec3(screen_size, 1.0) * 2.0 - vec3(1.0) , 1.0); ndc = inverse_mvp * ndc; vec3 fixed_pos = ndc.xyz / ndc.w;
Ну то есть ты по результатам сам что ли не видишь правильно или нет?
Откуда этот код?
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Дядя Миша из интернета. Результат похож на правду, но точность заметно хуже, чем у интерполяции. Я хочу понять, это из-за неверного кода или из-за недостатка точность флоатов.
Я в своё время, когда задавался этим вопросом перепробывал разные способы и вот у них тоже была какая-то очень низкая точность. Наилучший результат получился с Screen Rays, можешь в параное посмотреть.
Там надо четыре луча предрассчитать.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Дядя Миша четыре луча по углам вьюпорта, интерполируешь между ними и умножаешь на глубину?
ncuxonaT именно так.
Добавлено 25-06-2020 в 23:49:
Глубину линеаризовать надо.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Дядя Миша а когда ты глубину линеаризовывал, ты добавлял еще расстояние от камеры до ближней плоскости отсечения?
ncuxonaT посмотри в шейдерах паранои, я уже не помню. Помоему да.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
float srcW = texture2D( u_DepthMap, var_TexCoord ).r; |
float w = linearizeDepth( u_zFar, RemapVal( srcW, 0.0, 0.8, 0.0, 1.0 )); |
vec4 worldpos = vec4( u_ViewOrigin + var_RayVec * w, 1.0 ); // nudge point to avoid z-fighting |
ncuxonaT вторая параноя очень многое тянет из первой. В частности там Buzer рисовал мир в укороченном диапазоне, оставив верхнюю часть под 3д скайбокс. Тебе это не нужно, это тежолое наследие.
Добавлено 07-07-2020 в 17:39:
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Дядя Миша я помню что в П1 головная нода каждый кадр копируется за затылок игрока чтобы мир рисовался только кастомным рендером
Помню что в П1 при загрузке новой карты рандомно зависало, а в П2 все хорошо.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Хочу сделать отрисовку текста без подключения шейдера, цвет задавать через glColor, а глифы хранить в одноканальной текстуре. В старом опенгле был формат хранения текстур GL_ALPHA, и он отлично подходил. Но, начиная с 3.1, GL_ALPHA объявлен устаревшим, а взамен предлагают использовать GL_RED. А результат чтения из GL_RED выглядит как (Red, 0, 0, 1), то есть в альфе единица. Есть идеи, что с этим можно сделать? Есть такая штука как GL_TEXTURE_SWIZZLE_* для переназначения каналов, но она не работает с блендингом.
А нихрена. Я сам планировал хранить альфу в ATI1N. И тоже пытался разрулить это свизлингом. В итоге пришлось юзать либо DXT1a либо DXT5.
Не решается эта задачка.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Таки я придумал.
glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_G, GL_RED );
glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_B, GL_RED );
glBlendFunc( GL_CONSTANT_COLOR , GL_ONE_MINUS_SRC_COLOR );
И цвет задавать через glBlendColor вместо glColor.
А вот прозрачность можно регулировать как раз через glColor.
Не факт что это будет корректно работать на любых вендорах и тем более любых дровах.
https://www.khronos.org/registry/Op...glBlendFunc.xml
Здесь в списке нету GL_CONSTANT_COLOR.
Добавлено 12-02-2021 в 09:32:
1 | #define GL_SRC_COLOR 0x0300 |
2 | #define GL_ONE_MINUS_SRC_COLOR 0x0301 |
3 | #define GL_DST_COLOR 0x0306 |
4 | #define GL_ONE_MINUS_DST_COLOR 0x0307 |
5 | #define GL_SRC_ALPHA 0x0302 |
6 | #define GL_ONE_MINUS_SRC_ALPHA 0x0303 |
7 | #define GL_DST_ALPHA 0x0304 |
8 | #define GL_ONE_MINUS_DST_ALPHA 0x0305 |
9 | #define GL_SRC_ALPHA_SATURATE 0x0308 |
10 | #define GL_CONSTANT_COLOR 0x8001 |
11 | #define GL_ONE_MINUS_CONSTANT_COLOR 0x8002 |
12 | #define GL_CONSTANT_ALPHA 0x8003 |
13 | #define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004 |
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Так ты смотришь спецификацию на ES 1.1, он ископаемый уже. В ES 2.0 GL_CONSTANT_COLOR есть. И в обычном GL есть, начиная с 1.2.1.
Я говорю, что полноценно в дровах всегда поддерживается только 1.1
А остальное - ну как повизёт. И GL_CONSTANT_COLOR это по идее 1.4
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
В документации на 1.2.1 GL_CONSTANT_COLOR присутствует. Скорее уж свиззла не будет.
Всем добрый день, товарищи! В общем вопрос, наверное, туповат, но никак не могу сообразить. Предположим у меня есть изометрическая 3D камера и террейн, представляющий регулярную тайловую сетку. Каким образом лучше всего сделать, чтобы на разных разрешениях и аспектах экрана влезало одинаковое количество тайлов? Если рисовать в FBO и делать апскейл - на больших разрешениях будет мазня. Тогда как правильно? Регулировать высотой камеры? Крутить FOV?
__________________
-Brain is dead-
KiQ у изометрической проекции видимая область задается не фовом, а плоскостями отсечения. Прикинь видимый размер тайла с учетом угла наклона камеры и задавай плоскости отсечения через glOrtho.
Такой вопросик, господа. Оказалось, glColor клампит значения в диапазоне 0-1. Есть ли способ вывести цвет больше 1 без подключения шейдеров? Рендер в текстуру с плавающей точкой, само собой.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
XaeroX да, похоже, как-то так и работает.
Нашел расширение GL_ARB_color_buffer_float, вроде с ним можно отключать клампинг.
Вьюмодели часто рисуют с другим фовом, нежели остальную сцену. Как в таком случае считать спекуляр и отражения?
если сделал эффекты opengl, ьудут ли они работать в других режимах(софтварь, directx)?
erfty
конечно будут, но только если ты из них переключишься обратно в opengl, посмотришь эффект, а потом обратно в софтварь/directx вернёшься.
__________________
erfty
Нет универсального решения, надо делать отдельно под каждый рендеринг.
Особенно проблематичен софтвар, т.к. там довольно жёсткие лимиты по производительности.
__________________
а там хоть какие то сходства есть? Иль нужно с нуля переучиваттся с opengl на софтварь/directX?
__________________
-Brain is dead-
__________________
XaeroX к слову, насколько сейчас критично использование кэша шейдеров вместо компиляции налету? Просто, насколько я помню, в той же Паранойе убер-шейдеры собирались прямо во время загрузки уровня. А допустим, кто-то захочет прикрутить в TriAPI шейдеры, логичнее для этого использовать какой-то универсальный язык, по типу того, что был в системе материалов в третьей кваке, а затем уже компилировать в зависимости от выбранного рендера. И вот тогда вопрос, когда лучше проводить эту компиляцию
__________________
-Brain is dead-
KiQ
Мне кажется, сейчас главное - сделать быстро (в плане скорости разработки) и правильно (без багов). А оптимизировать такие моменты, как кеширование бинарников, можно и потом, если удастся убедить менеджмент в том, что это вообще нужно, с цифрами статистики...
__________________
XaeroX но по идее оптимизация должна закладываться уже на уровне прототипа? Или не должна?
__________________
-Brain is dead-
__________________
PrimeXT
GoldSrc Monitor
SMD Splitter
mdl-flip (gFlip analog)
Xash3D Modding Discord
__________________
SNMetamorph я не совсем о том гвоорил. Я имел в виду, что самому разработать упрощённый шейдерный язык с конечным значением основных комманд и два транслятора, в GLSL и что там в директе используется
__________________
-Brain is dead-
KiQ
Так я не понял, чем вас Cg не устраивает?
В Volatile шейдеры при сборке компилируются сразу в большое число профилей, часть из которых D3D, а часть GL. Соответственно, простые эффекты будут работать на условной GeForceFX, ну а сложные используют всё преимущество полноценного ветвления, неразвёртываемых циклов и других радостей модели 3+.
1 | enum { |
2 | PROG_PROFILE_UNKNOWN, |
3 | PROG_PROFILE_VS_2_0, |
4 | PROG_PROFILE_VS_2_X, |
5 | PROG_PROFILE_VS_3_0, |
6 | PROG_PROFILE_VS_4_0, |
7 | PROG_PROFILE_VS_5_0, |
8 | PROG_PROFILE_ARBVP1, |
9 | PROG_PROFILE_GP4VP, |
10 | PROG_PROFILE_GP5VP, |
11 | PROG_PROFILE_GLSLV, |
12 | PROG_PROFILE_GLSLV3, |
13 | PROG_PROFILE_PS_2_0, |
14 | PROG_PROFILE_PS_2_X, |
15 | PROG_PROFILE_PS_3_0, |
16 | PROG_PROFILE_PS_4_0, |
17 | PROG_PROFILE_PS_5_0, |
18 | PROG_PROFILE_ARBFP1, |
19 | PROG_PROFILE_GP4FP, |
20 | PROG_PROFILE_GP5FP, |
21 | PROG_PROFILE_GLSLF, |
22 | PROG_PROFILE_GLSLF3, |
23 | PROG_NUM_PROFILES |
24 | }; |
__________________
XaeroX помню ещё пытался с Cg водичкой для халфы разобраться, и как-то сразу мне оно не зашло именно тем, что это C for graphics. Отсюда и издержки синтаксиса и в целом некая перегруженность. Я же имел в виду некий высокоуровневый универсальный язык, который может транслироваться в API-зависимые конструкции. В общем, скриптинг для шейдеров. Старый GLSL был к этому приближен, потом в него тоже ввели кучу нагромождений типа чтобы отвязать от фиксированного пайплайна. В итоге да, контроль есть, а удобства уже такого нет. Все эти раскладки переменных и т.д, которые нужно делать вручную. Это мне напомнило переход от LWJGL2 к LWJGL3. Да, дали значительно больше контроля, но теперь вместо условного Display.create() нужно прописывать по сути те же обёртки над GL, так и спрашивается, на кой чёрт такой фреймворк, который заставляет делать пользователя то же самое, только переименованными методами?
__________________
-Brain is dead-
Старый GLSL по прежнему можно использовать.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Вопрос к XaeroX - гуглил "oblique frustum with inversed depth" и ничего толком не нашел, кроме, походу, твоей работы по линеаризации глубины в шейдере при юзании oblique frustum с инвертированной глубиной (потому что сам по себе oblique frustum там портит глубину и потому Unigine от него отказались)
К чему это я - не подскажешь как подправить оригинальный код Эрика для модификации матрицы проекции если эта самая матрица уже с инвертированной глубиной ?
У меня в рендере юзается инвертированный депс, и я пытаюсь запилить зеркало, если оно попадает во фрустум - отражаю камеру и рисую в рендертаргет, потом шлепаю на это зеркало.
Хочу клипать все по этому зеркалу чтоб не рисовалось то что за ним, и потому подумаю использовать oblique frustum, но кривизна рук и бедность мозга не позволяет получить результат.
__________________
code:
// See: Oblique frustum: Eric Lengyel static void ClipProjectionMatrix(const Matrix& matView, Matrix& matProj, const Plane& inClipPlane) { Plane transformedPlane = matView.TransformPlane(inClipPlane); Vector clipPlane(transformedPlane.Normal()); clipPlane.SetScalar(3, -transformedPlane.Distance()); // Calculate the clip-space corner point opposite the clipping plane // as (Sgn(clipPlane.x), Sgn(clipPlane.y), 1, 1) and // transform it into camera space by multiplying it // by the inverse of the projection matrix float m0 = matProj.GetScalar(0, 0); float m5 = matProj.GetScalar(1, 1); float m8 = matProj.GetScalar(2, 0); float m9 = matProj.GetScalar(2, 1); float m10 = matProj.GetScalar(2, 2); float m14 = matProj.GetScalar(3, 2); Vector q ( (Sgn(clipPlane.GetScalar(0)) + m8) / m0, (Sgn(clipPlane.GetScalar(1)) + m9) / m5, 1.0f, (1.0f - m10) / m14 ); // Calculate the scaled plane vector Vector c = clipPlane * (1.0f / clipPlane.Dot4(q)); // Replace the third row of the projection matrix matProj.SetScalar(0, 2, -c.GetScalar(0)); matProj.SetScalar(1, 2, -c.GetScalar(1)); matProj.SetScalar(2, 2, -c.GetScalar(2)); matProj.SetScalar(3, 2, c.GetScalar(3)); }
0r@ngE
Для начала рекомендую вернуть обычную (не инвертированную) матрицу проекции и убедиться, что oblique clipping в принципе работает. А уж потом можно будет доработать для инверсии.
__________________
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
XaeroX
Открутил inversed depth (он тут у меня везде прибит гвоздями), вернул оригинальную функцию и теперь все клипается как положено.
Отличия моего кода от оригинального от Эрика только в том, что у него там OpenGL, и потому clip space depth в [-1;1] а у меня Vulkan и [0;1]
code:
// See: Oblique frustum: Eric Lengyel static void ClipProjectionMatrix(const Matrix& matView, Matrix& matProj, const Plane& inClipPlane) { Plane transformedPlane = matView.TransformPlane(inClipPlane); Vector clipPlane(transformedPlane.Normal()); clipPlane.SetScalar(3, -transformedPlane.Distance()); // Calculate the clip-space corner point opposite the clipping plane // as (Sgn(clipPlane.x), Sgn(clipPlane.y), 1, 1) and // transform it into camera space by multiplying it // by the inverse of the projection matrix float m0 = matProj.GetScalar(0, 0); float m5 = matProj.GetScalar(1, 1); float m8 = matProj.GetScalar(2, 0); float m9 = matProj.GetScalar(2, 1); float m10 = matProj.GetScalar(2, 2); float m14 = matProj.GetScalar(3, 2); Vector q ( (Sgn(clipPlane.GetScalar(0)) + m8) / m0, (Sgn(clipPlane.GetScalar(1)) + m9) / m5, -1.0f, (1.0f + m10) / m14 ); // Calculate the scaled plane vector Vector c = clipPlane * (1.0f / clipPlane.Dot4(q)); // Replace the third row of the projection matrix matProj.SetScalar(0, 2, c.GetScalar(0)); matProj.SetScalar(1, 2, c.GetScalar(1)); matProj.SetScalar(2, 2, c.GetScalar(2)); matProj.SetScalar(3, 2, c.GetScalar(3)); }
Вопрос отпадает всем спасибо, ночь выдалась продуктивной порешал.
0r@ngE
Поделись тогда уж формулами с народом, вдруг кому пригодится.
__________________
Что выбрать для 3д рендеринга, SDL иль Opengl? По критериям поддерживаемых устройств и производительности.
Такой вопрос, есть уровень 2д из тайлов, например размером 100х100 тайлов, что будет лучше, склеить их в одну картинку при загрузке или отрисовать все 10000 прямоугольников отдельно с текстурой тайлов? При том учитывая что текстура одного тайла может быть например 256x256 пикселей, и я так посчитал что клеить их в одну текстуру что то уж дофига большое разрешение получается. Отрисовка DirectX 9.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Исходя из информации (слухах) о принципах работы современных видеокарт, тебе надо надо все склеивать в атласы максимально возможного размера.
Добавлено 28-03-2023 в 16:06:
И не при загрузке, а при вгрузке надо склеить. Кстати, 10000 уникальных тайлов это крутовато, у тебя пример просто теоретический?
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Для десяти тысяч квадов, как ни извращайся, но разницу ты не почувствуешь. Ни на десктопах ни на телефонах. Может на RivaTNT была бы разница.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
FiEctro квады ты можешь отсекать по вьюпорту. Или тебе нужно отобразить их на одном экране? Тогда проще прекалькуляцию в файл произвести, как оверлеи для карт в CS
__________________
-Brain is dead-
Так такие разрешения картинок слоёв это норма?
Добавлено 28-03-2023 в 16:19:
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Ну вот смотри у тебя картинки вполне кошерного размера и кратные двойке. На кой ляд ты собрался их сшивать?
Лайтмапы сшивают, потому что там куча мелкого дерьма размеров 1х1, 2х7, 5х3 и прочего.
Добавлено 28-03-2023 в 16:34:
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Как из моноширинного сделать обычный? Моноширинные гарнитуры были придуманы для пишущих машинок, чтобы текст нормально смотрелся, потому что там нельзя никак применить кернинг. В наборных шрифтах обычно таблица кернинга хранится в самом файле шрифта, если это, конечно, не корявый рип.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
А в пробеле сколько пикселей?
ZGreen
Ну логично если в чарактере нет вообще пикселей то это пробел, и его обрезать не надо
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Теперь я потерял нить рассуждения. Можешь описать свою задачу? А то моноширинный шрифт переделать в обычный и т д. Может мы в терминах расходимся? Я некоторое время имел отношение к издательской деятельности и с шрифтами у меня определенные ассоциации. Что имеешь в виду ты?
ZGreen
Чтобы ширина каждого чарактера была своя. Например символы "I" и "W" имеют разную ширину.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Очевидно это в откерненых шрифтах интервалы плавают, а в мониширинных нет, на то они и моноширинные. Я так полагаю, что ты берешь какую-то гарнитуру и пишешь как будто шрифт моноширинный и получается убого? Так ты выводи каждый символ с оффсетом, а не пиксели отпиливай. Ну или возьми настоящий моноширинный шрифт и пиши им, будет смотреться нормально
Добавлено 28-03-2023 в 23:57:
code:
I W
ZGreen
Скорее просто расстояние между буквами очень большое. А если их сделать уже, то уже сильнее заметно как это расстояние плавает, ибо в самом шрифте буквы нарисованы разной ширины.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
У тебя шрифт какой используется, что такие проблемы?
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Если шрифт с кернингом, можешь в фотошопе сетку покрупнее сделать, набрать символы и в параметрах текста выбрать тип кернинга, оптический или по метрике в шрифте (если есть) ну и там по пикселям посмотреть-посчитать. Так мне было бы проще всего. У меня контейнер шрифтовой разбирать ума не хватат, хотя описания формата в сети, конечно, есть.
У кого нибудь есть ASCII таблица символов в кодировке UTF-16? Русская раскладка там за 1000 переваливает. Интересно какие там граничащие символы.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Дядя Миша
Есть какая нить утилита которая бы могла генерить битмапу и записывать все эти данные в отдельный файл?
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Дядя Миша
Можно ссылку?
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Наверняка кто-то реализовывал береговую линию средствами glsl, поделитесь опытом: как это работае? Как определяется контур самой линии?
Unit
Большинство не заморачиваются и делают меш с вертекспаинтом аккуратно по берегу. Это самое частое решение что встречал. Я пытался сделать такое по карте глубины в Юнити, вышло так себе, но небольшая пенка тоже есть.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Я бы предрассчётами делал. Рассчитал бы в оффлайне карту глубин.
Но можно и прямо в шейдере. В той же P2:Savior есть пример.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Временная зона GMT. Текущее время 21:22. | Показать все 227 сообщений этой темы на одной странице |
На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024