[Ответить в тред] Ответить в тред



<<
Назад | Вниз | Обновить тред | Автообновление
998 | 141 | 364

OpenGL thread 4 Аноним 04/11/15 Срд 18:17:53  195365  
(519Кб, 768x1143)
Рисуй треугольник!
Треугольник сам себя не нарисует!

Спрашиваем, сами же решаем проблему, сами же отписываемся. Постим книжечки, гуглим, учим математику. Посылаем нахуй за легаси.
Добро пожаловать. Снова.

Архив:

http://arhivach.org/thread/28624/ - 1
http://arhivach.org/thread/47586/ - 2
http://arhivach.org/thread/64117/ - 3


Документация:

https://www.opengl.org/sdk/docs/man3/ - OpenGL 3.3
https://www.opengl.org/sdk/docs/man4/ - OpenGL 4.5
https://www.opengl.org/wiki/Main_Page
http://docs.gl/


Тьюториалы:
> OpenGL
http://www.learnopengl.com/
https://code.google.com/p/gl33lessons/
https://triplepointfive.github.io/ogltutor/index.html
http://opengl-tutorial.blogspot.ru/
http://www.opengl-tutorial.org/
http://www.tomdalling.com/blog/category/modern-opengl/
http://www.lighthouse3d.com/tutorials/glsl-tutorial/glsl-core-tutorial-index/
https://en.wikibooks.org/wiki/Category:OpenGL_Programming
> Математика
http://www.rossprogrammproduct.com/translations/Matrix%20and%20Quaternion%20FAQ.htm
http://www.gamedev.ru/code/articles/faq_matrix_quat
http://www.gamedev.ru/code/articles/?id=4215


Библиотеки:
> Контекст
https://www.libsdl.org/
http://www.glfw.org/
http://www.sfml-dev.org/
> Загрузка текстур
https://www.libsdl.org/projects/SDL_image/
https://github.com/nothings/stb
http://gli.g-truc.net/0.7.0/index.html
> Математика
http://glm.g-truc.net/0.9.7/index.html
> Расширения
http://glew.sourceforge.net/


Книги:
> OpenGL
http://rutracker.org/forum/viewtopic.php?t=5047442 - Superbibile 7 (вышла летом)
http://www.amazon.com/OpenGL-Shading-Language-Cookbook-Second/dp/1782167021/
http://www.amazon.com/OpenGL-Programming-Guide-Official-Learning/dp/0321773039/
> Математика
http://sernam.ru/book_mm3d.php
http://www.amazon.com/Math-Primer-Graphics-Game-Development/dp/1568817231
http://www.amazon.com/Mathematics-Programming-Computer-Graphics-Edition/dp/1435458869


Полезные ссылки:

http://tfc.duke.free.fr/
http://tfpsly.free.fr/bookmarks.html
https://www.youtube.com/user/BSVino/playlists
https://www.youtube.com/user/thebennybox/playlists

Аноним # OP  04/11/15 Срд 18:21:18  195366
Какие-то остальные ссылки: полезные книжки по комп. графике, какие-то полезные исходники/библиотеки, статьи, презентации и прочее - думаю стоит добавлять по ходу треда.
В шапке, на мой взгляд, должна быть общая информация без какой-то конкретизации.
Аноним 04/11/15 Срд 18:23:14  195368
Насколько я понимаю, все серьезные геймдевелоперы перевелись, тред создан зря.
Но если нет, то такой вопрос: какую версию используете на коммерческих проектах? Я вот сижу на 3.2 и думаю — не слишком ли жирно? Алсо, на говнокарты от интел уже завезли нормальные драйвера?
Аноним # OP  04/11/15 Срд 18:25:53  195369
>>195368
> Я вот сижу на 3.2 и думаю — не слишком ли жирно?
А может быть наоборот?
3.2 вышел 6 лет назад.
Аноним 04/11/15 Срд 18:37:07  195377
>>195369
>6 лет назад
Да кажись вообще 7-8. Но моя стационарная пека больше не поддерживает. При этом комфортно играю на ней в игры до 2011 включительно на средне-высоких. Среди новых ААА игр с йоба графонием довольно мало годных, на мой взгляд, так что еще пару лет можно не апгрейдить. Я к тому, что среди ца, людей с такой же точкой зрения может быть довольно большой процент, только пеку они купили не в 2008или 2009, не помню, ка к я, а на год раньше.
Аноним 04/11/15 Срд 18:37:59  195378
>>195365 (OP)
Вот выкатят Vulkan, и OpenGL станет legacy весь.
Аноним 04/11/15 Срд 18:40:04  195381
>>195378
С хуя ли? В нем обратная совместимость будет?
Аноним 04/11/15 Срд 18:56:12  195389
Поясните, когда надо использовать GL_DYNAMIC_DRAW?
Аноним 04/11/15 Срд 18:57:05  195390
>>195381
> В нем обратная совместимость будет?
НЕ-БУ-ДЕТ
>>195378
> Вот выкатят Vulkan, и OpenGL станет legacy весь.
Для каких-то мегасложных вещей, игре те же, вполне себе да.
А для простого будет хватать и старого ogl'a.
Аноним 04/11/15 Срд 18:59:14  195394
>>195389
http://stackoverflow.com/a/23021346
Аноним 04/11/15 Срд 19:08:55  195403
(61Кб, 1366x768)
Перекачусь-ка я сюда. Пытаюсь пилить движок на с++ сразу под браузеры. Хочу сказать, что Emscripten пока что довольно сырая штука. В GLFW половина функций не работает. Наверное перепишу под GLUT.

Сегодня весь день пытаюсь запилить pointer lock. Пока работает только в полноэкранном режиме. И glfwSetMousePos не работает, видимо, придётся обрабатывать событие mouse move (на десктопе я привык просто получать координаты в цикле и ставить их в середину окна, естественно с выключенным GLFW_MOUSE_CURSOR)
Аноним 04/11/15 Срд 19:23:17  195421
>>195403
> Пытаюсь пилить движок на с++ сразу под браузеры
И в чём профит?
Аноним 04/11/15 Срд 19:28:30  195425
>>195421
На десктопе мне всё давно известно. Портировать готовый браузерный код на десктоп намного легче. Этим я займусь совсем скоро, когда смогу в браузере хотя бы просто БРОДИТЬ по миру.
Аноним 04/11/15 Срд 19:35:12  195428
>>195425
Чет я не понял, ты пишешь дектопный код на с++, потом переводишь его в жс с помощью эмскриптен, а потом будешь назад переводить в с++?
Аноним 04/11/15 Срд 19:40:06  195436
>>195428
Браузерный компилируется emscripten'ом, десктопный компилируется GCC.

Я пишу сразу браузерный код. Когда освоюсь в нём, сделаю порт на декстоп - потребуется не больше, чем пара #ifdef (например, в Emscripten для основного цикла есть своя функция, а десктопном варианте будет стандартный while (running) { ... }).

Например, сейчас я выяснил, что GLFW не очень хорошо поддерживается емскриптеном. Скорее всего перепишу на [free]GLUT/SDL. Не придётся делать это потом, когда будет уже много кода.
Аноним 04/11/15 Срд 20:01:21  195442
>>195403
А ты какую версию glfw юзаешь?
У меня нету функции
> glfwSetMousePos
но есть
> glfwSetCursorPos
Аноним 04/11/15 Срд 20:14:12  195446
>>195442
Вторую. Третья не работает, опять же, хотя поддержка есть.

Короче, я посмотрел эмулятор GLFW в емскриптене - на многих функциях просто заглушки. В HTML5 невозможно установить позиуию курсора, но я надеялся, что он хотя бы в эмуляторе имеет промежуточные переменные.

Придётся как-то преобразовывать абсолютные координаты захваченного курсора (они могу расти бесконечно) в координаты относительно последней обработки. Пошёл смотреть исходники всяких движков, портированных на webgl
Аноним 04/11/15 Срд 20:24:31  195452
>>195446
Всё, решение найдено. Надо обрабатывать событие HTML mousemove (через API эмскриптена). Там есть movementX и movementY, содержащие значение относительно предыдущего такого события
Аноним 04/11/15 Срд 20:25:58  195453
>>195446
https://github.com/toji/webgl-quake3/blob/master/js/main.js#L533
Аноним 04/11/15 Срд 22:26:31  195492
Поясните пожалуйста. Есть у меня 3д координаты фигуры.
Я умножаю каждую вершину(допустим, без шейдеров), как в обычном пайплайне, на матрицы. Scale->Rotate->Translate->View->Projection.
В итоге имею 4вектор, в котором последняя координата - флаг.
Теперь я должен рисовать эту вершину, используя первый и второй элемент(Х и Y)? Получается, третий элемент вообще не используется теперь?
Аноним 04/11/15 Срд 22:54:32  195499
>>195492
Четвёртая координата - это глубина. Используется для отсечения невидимых поверхностей. Пока что автоматически, вручную ты будешь ей оперировать, например, при реализации прозрачности.

По поводу матриц - посмотри https://en.wikibooks.org/wiki/OpenGL_Programming/Modern_OpenGL_Tutorial_05
Аноним 04/11/15 Срд 23:04:48  195506
>>195492
Вообще, ты не прав. После умножения вершины на матрицы модели, вида и проекции у тебя по прежнему вектор положения в трёхмерном пространстве, только уже относительно камеры. Используя 3 координаты и глубину видеокарта уже рассчитывает положение на экране.

Матрица проекции отвечает, например, за перспективу. Более удалённые от камеры точки сближаются. Точно не скажу, какая это матричная операция, можешь глянуть код функций перспективы: https://github.com/g-truc/glm/blob/master/glm/gtc/matrix_transform.inl#L211-L399
Аноним 04/11/15 Срд 23:26:27  195516
>>195499
>>195506
Таки на счёт четвёртой координаты яя ошибся
http://stackoverflow.com/questions/2422750/in-opengl-vertex-shaders-what-is-w-and-why-do-i-divide-by-it
Кажется, в прикреплённом треде тебе правильно ответили.
Аноним 04/11/15 Срд 23:28:38  195519
Народ, поясните за это дерьмо
Установил себе вижуал студио, попытался в нём запилить лабораторку из универа - нихуя опенгл не пашет.
Попытался запилить на Qt - та же хуйня
Ругается или на библиотеки, или я даже хуй знает на что

Что там надо поставить чтоб оно нормально блядь работало без всяких выебонов?
Аноним 04/11/15 Срд 23:35:18  195524
>>195519
>Что там надо поставить чтоб оно нормально блядь работало без всяких выебонов?
Debian
Аноним 04/11/15 Срд 23:41:02  195527
(147Кб, 636x657)
>>195519
> попытался в нём запилить лабораторку из универа - нихуя опенгл не пашет
Что у тебя там?
Аноним 05/11/15 Чтв 00:10:48  195535
>>195527
там всё на хохляцком
в двух словах - треугольник, у которого цвета меняются и идут градиентом от одного угла к другому (разноцветный треугольник)
Аноним 05/11/15 Чтв 00:11:48  195536
>>195535
это типа самая первая, самая примитивная лаба

через месяц сдавать ему курсач - свою игру
а не только не совсем понимаю как её сделать, так ещё тупо и возможности нет, пиздец какой-то а не предмет
Аноним 05/11/15 Чтв 00:19:31  195539
>>195535
>>195536
Я отпишусь по позже.
Не ссы.
Аноним 05/11/15 Чтв 01:14:31  195547
>>195519
>нихуя опенгл не пашет
Каким образом не пашет? Вкидывай с++-код, шейдеры. Еще можешь попытать счастья в /pr, он побыстрее будет.
Аноним 05/11/15 Чтв 01:42:36  195556
Наконец-то новый тред
Аноним 05/11/15 Чтв 04:39:38  195576
Пацаны, а вызывать функции опенгла можно только с того треда, который создал контекст, или как?
Аноним 05/11/15 Чтв 07:54:25  195586
>>195576
Утверждается, что можно в одном треде контекст отпустить, в другом принять и рисовать. Но что-то с такой системой заморачиваться неохота, даже для теста.
Аноним 05/11/15 Чтв 09:29:03  195589
>>195368
>все серьезные геймдевелоперы перевелись
Ты хотел сказать движкописатели? Серьёзные геймдевелоперы делают игры.
Аноним 05/11/15 Чтв 11:42:53  195619
(74Кб, 1366x768)
Подскажите по поводу выделения памяти под массивы вершин. Добавил в сцену поддержку нескольких объектов. Все они хранят вершины в одном массиве. При добавлении вершин в массив хочу увеличивать его realloc'ом. Вроде как должно избавить от фрагментации памяти, да и на видеокарту так эффективнее отправляется. Но меня беспокоит скорость перемещения данных при realloc'е.

Массив элементов для каждого объекта пока отдельный, потому что я не нашёл, как можно отрисовать только несколько элементов из массива. Это вообще возможно?

В целом, подскажите, как лучше выделять память и хранить эти данные.
Аноним 05/11/15 Чтв 12:08:21  195620
>>195619
Нахуя в одном массиве-то? Байтоеб мамкин?
Аноним 05/11/15 Чтв 12:18:36  195623
>>195620
Я же написал
>Вроде как должно избавить от фрагментации памяти, да и на видеокарту так эффективнее отправляется.
Да чего эти массивы, по-твоему, придумали?
Аноним 05/11/15 Чтв 15:08:34  195652
>>195619
Какая версия опенгл?
Аноним 05/11/15 Чтв 16:33:01  195707
>>195623
Я и говорю байтоеб. Между тобой и железом еще сидит драйвер, со своими понятиями. Вот ты думаешь дал ему указатель на данные в ram и они потекли по шине в vram? Нихуя. Пока не скажешь glFinish или SwapBuffers, драйвер имеет право курить бамбук. Все зависит от реализации.
Аноним 05/11/15 Чтв 16:42:28  195715
>>195619
Ты ебанулся? Для каждого объекта сделай свой массив вершин. Чего байты ебёшь-то.
Аноним 05/11/15 Чтв 16:49:01  195718
(32Кб, 600x399)
ОБЪЯСНИТЕ, МНЕ, БЛЯДЬ, МОЛЮ!!! ПОЧЕМУ ФУНКЦИЯ GLSL noise1 ВСЕГДА(!)АБСОЛЮТНО ВСЕГДА ЁБ ЕЁ МАТЬ(!!!!!!) ВОЗВРАЩАЕТ 0??????????? ЭТО ЖЕ ШУМ, ОН ДОЛЖЕН БЫТЬ РАЗНЫМ, ПИЗДЕЦ КАРОЧЕ! КАК СДЕЛАТЬ?????
Аноним 05/11/15 Чтв 16:54:40  195724
>>195718
пссц, юнити-дибил, не хочешь САМ РУКАМИ КОД ПОПИСАТЬ! Её просто еще не реализовали.
Аноним 05/11/15 Чтв 16:57:17  195728
>>195718
На примере перлин нойза из флэша помню, что в перлин нойз нужно передавать любое число, для целей рандома. Возможно у тебя похожая ситуация и тебе надо в какую-то глобальную переменную записывать какое-то псевдо-случайное число.
Аноним 05/11/15 Чтв 16:57:19  195729
>>195724
Что значит не реализовали?
https://www.opengl.org/sdk/docs/man/html/noise.xhtml
Где тут хоть 1 слово о том, что её не реализовали?
Аноним 05/11/15 Чтв 16:58:19  195731
>>195728
У меня есть переменная, которая содержит в себе прошедшее с запуска программы время. Она может подойти как параметр. Осталось передать его в функцию, которая не работает.
Аноним 05/11/15 Чтв 17:43:40  195765
>>195729
Это спецификация. Кто как хочет так её и реализовывает. Не хочет реализовывать нойз - не реализует. Вендор железа сам решает и никому не отчитывается.
Аноним 05/11/15 Чтв 17:47:12  195766
>>195765
Вендор обязан реализовать то что входит в объявленную им поддерживаемой версию стандарта.
Аноним 05/11/15 Чтв 19:06:01  195796
а есть на opengl какой-то онлайн компилятор?
Аноним 05/11/15 Чтв 19:22:05  195806
(53Кб, 1366x768)
>>195652
WebGL (считай, что OpenGL ES 2.0).

>>195707
>>195715
Ок.
Аноним 05/11/15 Чтв 19:32:09  195811
(75Кб, 640x1136)
>>195796
Компилятор чего?
Аноним 05/11/15 Чтв 19:37:04  195818
>>195766
Тащемта, это в директиксе так, а огл у каждого свой. Вспомни те же расширения из времён 1.1.
Аноним 05/11/15 Чтв 19:44:47  195828
>>195818
Правильно, а вспомни еще их префиксы и понятие core since.
Аноним 05/11/15 Чтв 20:10:47  195846
>>195766
> Вендор обязан реализовать то что входит в объявленную им поддерживаемой версию стандарта.
Пидарашьи вопли мамкиног опетуха. Иди и реализовывай. Я уверен, что ты даже на стажера в н-видиа не пройдешь.
Аноним 05/11/15 Чтв 20:18:27  195847
>>195619
VAO для кого придумали, епта?
Аноним 05/11/15 Чтв 20:25:40  195848
>>195818
Расширения есть до сих пор. Таким образом, новые фичи попадают в опен гл куда раньше, чем в директикс.

>>195846
Но он все правильно сказал. Не понимаю, с чего тебе так пердак разворотило.

>>195847
>2015
>VAO
Аноним 05/11/15 Чтв 20:44:06  195851
>>195847
Вроде и без него нормально получилось. Его нет в базе WebGL, только в расширении. Какие от него профиты?
Аноним 05/11/15 Чтв 20:44:08  195852
>>195846
Иначе вендор пиздит про поддерживаемую версию. Потому что версии определяются в основном именно принятием в них расширений. Сверх версии - пожалуйста, пили свои glYOBAStreamSparsedDataArrayBufferPointers.

В директхуе все просто? А сколько не-железячников в нем участвует? Точнее если не мелкомягкие, то кто?
Аноним 05/11/15 Чтв 20:56:50  195854
>>195852
Очередной типичный СНГ-максимализм из ничего. Вендор никому ничего не должен. И как может реализовать стандарт, так и реализовывает. Придумывая свои ext_ и прочее. Он тебе ничего не должен. Поэтому у нас и нет нихуя. Что всякие пидарасы вроде тебя не могут в рационализм. А хотят всё и сразу. НИ ОДНА ВИДЕОКАРТА НИКОГДА НЕ ПОДДЕРЖИВАЛА ВЕСЬ ВТАНДАРТ! НИКОГДА!

>>195848
> Но он все правильно сказал.
Нет.
Аноним 05/11/15 Чтв 21:11:24  195857
>>195854
Но тогда это означает, что оборудование тупо не соответствует стандарту.
Вот представь себе, ты купил мышку, вполне норм на вид, заводится с обычным HID-драйвером. А взяв в руку понимаешь, что у нее оси перепутаны. Кагбе на 90 градусов свернуты. Лезешь на сайт производителя, драйвер оттуда ставишь, получаешь тупые свистоперделки "100500 функций по нажатию на среднюю клавишу при ритмичном пошатывании колесика и попердывании в микрофон", а с осями проблема никуда не девается. Что это такое? КО-КО-КО-ПРОИЗВОДИТЕЛЬ-МНЕ-НИХУЯ-НЕ-ОБЯЗАН-БУДУ-РАБОТАТЬ-ТАК или производитель таки налажал?
Реально у меня такая мышка лежит, и к сожалению была распакована слишком поздно, чтоб вернуть в магазин.

Подозреваю, что ты в основном насиловал встроенные видеокарты в ноутах, там риальне всякие уродцы бывают, чего только стоит вообще идея разделяемой оперативки. А одно время даже на каких-то игорях писали "mobile-видеокарты не поддерживаются".
Аноним 05/11/15 Чтв 21:24:25  195862
>>195851
>нет в базе
Его самому запилить - это полсотни строчек кода.

>>195848
Что не так с VAO?
Аноним 05/11/15 Чтв 21:36:26  195865
(18Кб, 300x400)
>>195857
> оборудование тупо не соответствует стандарту
Манямирок абосраташа-юнити-петуха лопнул. Если я тебе скажу, что на консолях еще на asm пишут и железо гавняное, что приходится извращаться еще так. И на боксе и на пс3. Всё консольное железо и видеокарты - полное гавно. Было есть и будет.
_Boris Batkin at Naughty Dog_
Аноним 05/11/15 Чтв 21:43:15  195867
>>195865
Не буду сомневаться, что писать под сосноли процесс в принципе изъебистый и еще наполовину анально огороженный вендорами. Изъебистость его в основном вызвана тем, что 1) у каждой сосноли свой фиксированный набор железа, и если девелопер собирается выпускать игоря сразу на всем что под руку попадется, то ебля его кодомакак с кучей железа где у каждого гпу свои тараканы разумеется обеспечена; 2) желание запилить графон круче чем вчера, но на том же говне мамонта, что и позавчера, и это пожалуй основной генератор секса.
Аноним 05/11/15 Чтв 22:32:56  195874
>>195446
Ебать ты обосранец. Думаешь, кто-то будет играть в твоё говно в браузере? Нахуй тащить в браузер неприспособленные для этого вещи? Может, мне насрать тебе на лицо потому, что сейчас модно так делать среди тупорылых макак? Пиши нормальный, оптимизированный код под десктоп. Нет блядь, я сожру гигабайты оперативки и высру говно с графоном хуже, чем в 1997 году, при этом это говно будет тормозить сильнее третьего крузиса, но зато ЕБАТЬ Я МОДНЫЙ ДЕВЕЛОПЕР У МАМЫ, ТРИДЕ, В БРАУЗЕРЕ, СМАТРИТИ ВСЕ!!!11
Веб зашёл в тупик в тот момент, когда js-макаки внезпно решили, что они тоже у мам программисты и устроили пир во время чумы, запихивая в браузер абсолютно всё говно, не приспособленное для этого.
Аноним 05/11/15 Чтв 22:35:33  195876
(36Кб, 600x400)
>>195619
Ты ебанутый? Что ты там оптимизируешь, блядь? Очнись, нахуй, твой говнокод транслируется в жс-дрисню, это говно по определению не может быстро работать, там нечего оптимизировать.
Аноним 05/11/15 Чтв 22:59:34  195885
>>195874
Луддит сука штоле? Вебгл есть, значит кому то это нужно. Само 3д в браузере тормозит не больше чем на десктопе, узкое место это жс, т.е. физика, а она не нужна для браузеродрочилен. В итоге получаем идеальную мультиплатформу, не нужна ни анальная жава, ни моно, ни анус твоей мамки - только браузер, а он стоит на любой микроволновке и на радость детям выводит трехмерные кубы прямо по соседству с вкладкой порнотьюба. Прогресс не остановить, мудак ты тупой.
Аноним 05/11/15 Чтв 23:13:00  195887
>>195885
>трехмерные кубы
>прогресс
Проснись, ты обосрался.
Массивы вершин, текстуры хранить/сортировать/обновлять ты где собрался? Не в тормозной js-дрисне? Или ты думаешь, что все данные сразу же волшебным образом попадут в гпу?
Это говно не нужно никому, кроме мамкиных отрисовщиков кубов и цветных треугольников, и прогресса в этом не больше, чем в пожирании говна только потому, что кто-то заикнулся, что так модно.
Аноним 05/11/15 Чтв 23:25:18  195891
>>195887
Разуй глаза, в соседнем треде обсуждают уе4 где сцена БЕЗ ВСЕГО дает 10 фпс и это считается нормальным, плюсы ёба, безграничные возможности. А человек с мозгами сможет написать быстрый код и на жс. Никто не говорит что браузер не потянет крузис 4, такие игры для веба нет смысла пилить. Зато для индипараши как замена флешу - то что надо. Пиздуй на порталы популярных вебжл либ и смотри примеры, диванный кармак блядь, там отнюдь не одни кубы показывают и нихуя не тормозит.
Аноним 05/11/15 Чтв 23:37:13  195894
>>195874
>я сожру гигабайты оперативки
>говно будет тормозить сильнее третьего крузиса
>>195876
>твой говнокод транслируется в жс-дрисню, это говно по определению не может быстро работать
Сыкнул на вас, на таких опущей, что в 2015 году не слышали про Asm.js и WebAssembly
Аноним 05/11/15 Чтв 23:45:12  195897
>>195894
Спустил тебе на лицо, а потом в туза выебал.
Что только не придумают скриптомакаки, лишь бы не учить нормальные языки и при этом ощущать себя нормальными программистами. Ассемблер в браузере - это как подрочить, стоя на одной руке вверх ногами, и кончить себе в рот при этом. Круто, конечно, молодцы ребята, но нахуй никому не нужно, кроме пары конченых извращенцев.
Аноним 05/11/15 Чтв 23:47:18  195898
>>195885
>Само 3д в браузере тормозит не больше чем на десктопе, узкое место это жс, т.е. физика, а она не нужна для браузеродрочилен.
Кстати, физику переносят на GPU с помощью шейдеров.
>Никто не говорит что браузер потянет крузис 4, такие игры для веба нет смысла пилить.
Вопрос времени.
Аноним 05/11/15 Чтв 23:47:19  195899
>>195897
Что же тогда в твоем представлении жаба?
Аноним 05/11/15 Чтв 23:48:16  195900
>>195897
>Ассемблер в браузере
>+ даже не понял, что я пишу не на JS
ты очень тупой
Аноним 06/11/15 Птн 00:07:48  195904
>>195897
Тащемта жаваскрипт уже давно комилируется всеми браузерами на лету в нативный код. В противном случае у тебя бы даже ютуб не запустился.
Жаваскрипт код скомпилированный Emscripten работает в некоторых браузерах всего в 2 раза медленее С++ кода и быстрее жавы.
Аноним 06/11/15 Птн 09:22:42  195940
>>195900
Я НА АСЕМБЛИРИ ПИШУ Я КРУТОЙ И УМНЫЙ ПРАГРАМИСТ ПАНЯТНА?
Да-да, мы все тебя услышали, можешь больше не кукарекать.
Аноним 06/11/15 Птн 11:23:58  195954
>>195862
>Что не так с VAO?
Я перефразирую:

>2015
>держать геометрию в клиентскиой памяти
Аноним 06/11/15 Птн 11:53:16  195958
>>195811
кода
Аноним 06/11/15 Птн 12:27:45  195967
>>195964
НА АСМ.ЖС КАРОЧИ В БРАУЗИРЕ ПИШИШЬ И ВСЁ В ГПУ ХРОНИШ ПОНИЛ? АПИРАТИВКА ВОЩЕ НЕ РАСХОДУЕТСЯ НИТАРМАЗИТ 200 ФПС ВЫДАЁТ КАК В КРУЗИСЕ
Аноним 06/11/15 Птн 12:39:21  195968
(209Кб, 700x525)
>>195904
Пиздец ты тупой.
Иногда даже страшно становится от того, какой беспросветный пиздец творится в головах js-макак.
Конечно, ютуб работает именно на джаваскрипте, который на лету компилируется в машинные коды и проигрывает тебе видео. Не сомневайся. Даже не задумывайся о том, что сервер шлёт сырые данные, которые затем проигрываются ядром браузера с помощью кодеков, написанных на сишке. Жаваскрипт работает медленнее всего в два раза, не сомневайся. Даже не задумывайся о том, как оно всё устроено внутри, как работает компьютер, зачем нужен кеш процессора и что такое браузер, что такое блокирующий/неблокирующий ввод/вывод, какие вообще могут быть узкие места у программы. Вообще старайся не думать, думать вредно, пусть разработчики браузера за тебя думают, они умные дяди. Просто пиши на жаваскрипте, думать не надо.
Аноним 06/11/15 Птн 13:10:50  195975
>>195964
Если используешь OpenGL 3.0+, то гугли vertex buffer object, а если нет, то страдай нет, правда, зачем использовать старые версии?
Аноним 06/11/15 Птн 13:18:52  195979
Тем временем подведу итоги треда:
>Пидарашьи вопли мамкиног опетуха
>Очередной типичный СНГ-максимализм из ничего
>Манямирок абосраташа-юнити-петуха лопнул
>Ебать ты обосранец
>Ты ебанутый?
>Проснись, ты обосрался
>Сыкнул на вас, на таких опущей
>Спустил тебе на лицо, а потом в туза выебал
>ты очень тупой
>Пиздец ты тупой

Похоже, в гд пополнение порваток.
Аноним 06/11/15 Птн 13:27:45  195987
>>195979
Сосач может в конструктивную беседу, но не может не перемешать ее с говном и хуями.
Аноним 06/11/15 Птн 15:06:35  196017
>>195998
Проиграл на всю хату.
Аноним 06/11/15 Птн 17:24:06  196054
>>195998
Так и будет.
Аноним 06/11/15 Птн 22:51:45  196112
>>195979
> ОБЪЯСНИТЕ, МНЕ, БЛЯДЬ, МОЛЮ
> at Naughty Dog
> оборудование тупо не соответствует стандарту

Аноним 06/11/15 Птн 23:42:37  196126
>>195718
Ее никто не реализует.
О тебе заботятся, дурилка глупая. Чтобы ты не падал в обморок когда, не только текстуры везде по разному накладываются, но и нойз имеет разную реализацию и хитрые баги.
Сделой его сам, это просто.
Аноним 07/11/15 Суб 02:08:36  196144
>>195998
ФПС 20 надо чтоб было.
Аноним 07/11/15 Суб 03:50:38  196152
>>196147
Почему бы сразу через webgl пилить, а не ебаться?
Аноним 07/11/15 Суб 04:19:52  196156
>>196154
С с++ переводить в джс.
Аноним 07/11/15 Суб 12:33:28  196173
>>196156
Я вообще-то программист, а не макака. Пишу на С++, оптимизирую всё, чтобы быстро работало. На жс нельзя оптимизировать.
Аноним 07/11/15 Суб 12:48:05  196175
>>196173
>оптимизирует жс-дрисню
Ебать ты даун. Обоссал тебе лицо.
Аноним 07/11/15 Суб 13:22:48  196178
>>196173
То есть ты серьезно думаешь, что если ты напишешь на С++, а потом переведешь в жс, то оно будет работать быстрее, чем если б ты сразу на жс писал?
Аноним 07/11/15 Суб 13:24:56  196179
>>196173
А мог бы игры делать
Аноним 07/11/15 Суб 13:56:09  196180
(230Кб, 1366x768)
>>196156
В ams.js
>>196178
Так-то да
>>196173
JS можно оптимизировать. Можно даже asm.js-код вручную писать. Но это очень муторно. Вот пример asm.js кода: https://gist.github.com/jeresig/5293608 Как на ассемблере писать вручную. Вдобавок, в дальнейшем, если WebAssembly победит asm.js, можно будет его использовать как целевую платформу - код не изменится
>>196179
Неинтересно
Аноним 07/11/15 Суб 14:09:02  196182
>>196180
>неинтересно
У тебя ошибка в слове не умею
Аноним 07/11/15 Суб 14:15:22  196184
>>196182
Несложно было догадаться по приложенному скрину. Надеюсь научиться моделлить и рисовать в процессе.
Аноним 07/11/15 Суб 14:38:54  196186
(29Кб, 500x373)
>>196180
>Вот пример asm.js кода
>do {...} while (0)
вот это оптимизация
Аноним 07/11/15 Суб 14:49:53  196187
>>196184
Учиться делать игры с написания движка, это как учиться писать книги создавая печатный станок. Ты уж выбери что-то одно
Аноним 07/11/15 Суб 14:53:22  196188
>>196187
А давай я буду делать то, что мне нравится? Как тебе?
>>196186
Это подсказка компилятору. Почитай ты уже про asm.js, Сёма. Весь тред своими глупыми догадками засрал.
Аноним 07/11/15 Суб 14:59:39  196190
>>196188
Давай ты съебешь в /pr/
Аноним 07/11/15 Суб 15:06:26  196191
>>196180
Ну будет твоя параша компилироваться сразу в псевдо-байткод, охуеть теперь. Получишь speedup в 20-30%. Учитывая то, что оно все еще запускается на виртуальной машине, использует сборщик мусора и т.д., твой движок будет супер тормозным. Это конечно не мое дело, каждый дрочит как хочет, но ты реально долбоеб.
Аноним 07/11/15 Суб 15:11:33  196194
>>196191
>asm.js
>компилироваться сразу в псевдо-байткод
>оно все еще запускается на виртуальной машине
>использует сборщик мусора
Твоя тупизна непробиваема
Аноним 07/11/15 Суб 15:15:59  196195
>>196194
Лол, это долбоеб еще думает, что у него там реальный ассемблер.
Аноним 07/11/15 Суб 15:34:14  196197
>>196195
В последний раз отвечаю тебе, даун, только чтобы у читающих не возникло сомнений в твоей тупизне:
http://asmjs.org/faq.html
>Q. Does the fact that asm.js is JavaScript mean you can't get predictable performance?
A. An ahead-of-time (AOT) compiler for asm.js can generate code with very predictable performance, because validated asm.js code is limited to an extremely restricted subset of JavaScript that provides only strictly-typed integers, floats, arithmetic, function calls, and heap accesses.
>Q. Can asm.js serve as a VM for managed languages, like the JVM or CLR?
A. Right now, asm.js has no direct access to garbage-collected data; an asm.js program can only interact indirectly with external data via numeric handles.
Аноним 07/11/15 Суб 15:43:27  196199
(61Кб, 429x410)
>>196180
> https://gist.github.com/jeresig/5293608 Как на ассемблере писать вручную.
Это по-твоему ассемблер? Обычный js-код где немного поебывают байты. Могу написать x / 2, а могу x >> 2, но от этого код ассемблером не становится. Раздел где делают игры, я ебал.
Аноним 07/11/15 Суб 15:46:05  196201
asm.js это не более чем описание того, как конпелятор emscripten транслирует с++ программы в жаваскрипт.
никакого ассемблера там нет
Аноним 07/11/15 Суб 15:47:34  196202
>>196201
поскольку это с++ транслированный в жс, то теоретически можно сделать обратное в жс движке браузера для оптимизации. в этом собственно вся суть
Аноним 07/11/15 Суб 15:49:08  196204
>>196197
Ну ты реально конченый чмошник. С твоей же ссылки:
>Q. Is asm.js a new language?
>A. No, it's just (a subset of) JavaScript.

>asm.js code is limited to an extremely restricted subset of JavaScript that provides only strictly-typed integers, floats, arithmetic, function calls, and heap accesses

А если вкратце, то ПСЕВДО-БАЙТКОД. Который потом исполняется на V8 или любом другом интерпретаторе.

Ну и еще:
>Q. What kind of performance benefits can I expect to get with asm.js?
>A. It's early to say, but our preliminary benchmarks of C programs compiled to asm.js are usually within a factor of 2 slowdown over native compilation with clang. We will publish more benchmarks as we collect them.

Короче, удачи с написанием производительного движка, хуесос.
Аноним 07/11/15 Суб 16:17:42  196214
>>196204
>А если вкратце, то ПСЕВДО-БАЙТКОД.
какой еще байткот? цитата значит только то, что 99% жаваскрипт функций использовать низзя, иначе это будет "ненастоящий" asm.js. Вот и все.
Аноним 07/11/15 Суб 16:29:08  196215
>>196214
Гугли как работают интерпретаторы, и тогда поймешь почему эту хуйня — это типа байткод.
У них даже в факе есть соответствующий вопрос:
>Why don't you specify a bytecode syntax instead of strange JavaScript idioms?
Аноним 07/11/15 Суб 17:02:05  196222
>>196215
Их ебанутый фак составлен в аспекте ОЛОЛО МЫ ПРИДУМАЛИ НОВЫЙ ЯЗЫК ДЛЯ ВЕБА.
хотя на самом деле это просто вспомогательная библиотечка для компилятора с++ в жс
Аноним 07/11/15 Суб 18:30:50  196245
(90Кб, 1366x768)
Пока вы тут срётесь, я начинаю реализовывать направленное освещение. Пока что оно намертво забито в шейдер. Сейчас сделаю получение данных от приложения, запилю класс Light::Sun.
Аноним 07/11/15 Суб 19:13:13  196259
(84Кб, 1366x768)
Кажется, я не учитываю положение и вращение объекта. Проблема в том, что я не знаю, что передавать в шейдер. Я сначала получаю матрицу модели-вида-проекции всей сцены (относительно камеры), потом для каждого объекта смещаю её, затем поворачиваю. Т.е. как таковой "матрицы обекта" у меня нет, в его методе draw я произвожу операции над глобальной матрицей, а не единичной. Может кто-то подсказать, что в таком случае передавать в шейдер? Может я вообще всё в неправильном порядке делаю? Код: http://pastebin.com/D3Z4wrbd
Аноним 07/11/15 Суб 20:23:54  196269
Получается, я освещаю объект так, будто он находится в начале координат и не повёрнут. Значит мне надо умножить нормали на матрицу модели-вида этого обекта?
Аноним 07/11/15 Суб 21:06:45  196271
>>196259
Я сейчас немного занят, чтобы копаться в твоем коде, поэтому я просто выкладу как делал я, возможно оно тебе поможет.
И так, матрица которую передаем в шейдер:
m_WVPMatrix = m_projMatrix m_camera->getViewMatrix() m_worldMatrix;
Тут:
- матрица проекции
m_projMatrix = glm::perspective(45.0f, 1.33f, 1.0f, 10.0f);
как и у тебя, походу;
- матрица вида (камеры), считается так
m_viewMatrix = glm::lookAt(m_position, m_target, m_up);
ты, как я понял, крутишь камеру вручную матрицами
- мировая матрица (положение объекта в мире, для каждого объекта своя в отличие от двух первых)
m_worldMatrix = trans_matrix rotZ_matrix rotY_matrix rotX_matrix scale_matrix;
соответственно матрицы из которых она собирается:
--- масштабирование
glm::mat4 scale_matrix = glm::scale(glm::mat4(1.0f), m_scale);
--- поворот
glm::mat4 rotX_matrix = glm::rotate(glm::mat4(1.0f), m_rotation.x, glm::vec3(1.0f, 0.0f, 0.0f));
glm::mat4 rotY_matrix = glm::rotate(glm::mat4(1.0f), m_rotation.y, glm::vec3(0.0f, 1.0f, 0.0f));
glm::mat4 rotZ_matrix = glm::rotate(glm::mat4(1.0f), m_rotation.z, glm::vec3(0.0f, 0.0f, 1.0f));
--- перенос в пространстве
glm::mat4 trans_matrix = glm::translate(glm::mat4(1.0f), m_translate);

Надеюсь, чем нибудь тебе это поможет, удачи тебе анон.
Аноним 07/11/15 Суб 21:07:59  196273
>>196271
сука, разметку проебал, короче там где шрифт меняется с обычного на курсив и назад должно быть умножение
Аноним 07/11/15 Суб 21:12:39  196275
>>196271
а, думаю что и так очевидно, но на всякий случай - m_scale, m_rotation и m_translate - это glm::vec3 содержащие информацию про масштабирование, поворот и сдвиг объекта по/вокруг осей х, у, z соответственно
Аноним 07/11/15 Суб 22:07:14  196290
(82Кб, 1366x768)
>>196271
Спасибо! Посмотрев твой код, я понял, что можно вместо translate относительно матрицы MVP сделать translate относительно единичной,а потом MVP умножить на результат (надо бы освежить в памяти теорию по матрицам).

Свет теперь рассчитывается правильно.
Аноним 08/11/15 Вск 00:13:54  196308
>>195975
Ебанашка, пойди загугли что такое VAO и зачем его используют.
Аноним 08/11/15 Вск 01:25:48  196314
>>196308
Хуесос не знает, что до третьей версии VAO означал совсем другую вещь. Еще ты, наверное, не знаешь, кто по средам твою мамашу поебывает.
Аноним 08/11/15 Вск 06:07:34  196342
А есть смысл хранить для каждого объекта матрицу модели-вида вместо позиции, кватерниона и масштабирования?
Аноним 08/11/15 Вск 13:03:39  196371
>>196342
Зачем?
Аноним 09/11/15 Пнд 17:19:43  196617
Начал задумываться над архитектурой движка. Сейчас есть классы Object и Camera, оба наследуются от Transformation - он хранит положение и вращение относительно некоторой начальной точки (сейчас только начало координат, но потом будет возможность указать любой другой transformation, чтобы объекты могли прикреплятьс друк к другу. например, камера позади персонажа).

Непонятный для меня момент - это шейдеры и шейдерные программы. Я уже столкнулся с необходимостью в нескольких шейдерных программах (текстурированные объекты, цветные объекты, интерфейс). К чему должна относиться шейдерная программа? К модели? Как тогда быть с интерфейсом, который моделью являться не будет?

Пока что планирую захардкодить три упомянутые шейдерные программы, реализовать интерфейс, добавить сложности в сцену, и после уже решить. Но буду рад любому совету. Также подскажите несложные движки с хорошим кодом, чтобы посмотреть, как там сделано.
Аноним 09/11/15 Пнд 22:27:12  196681
(78Кб, 1366x768)
Пытаюсь сделать зеркало (большой прямоуольник на скрине) с помощью stencil-буфера. Почему отражённые объекты рисуются и за пределами зеркала? Код рендера: http://pastebin.com/0ZTv5XKJ
Аноним 09/11/15 Пнд 22:30:31  196682
>>196617
Открой для себя three.js.
Аноним 09/11/15 Пнд 22:36:52  196685
>>196617
1) берешь готовый. Например Ogre или Cocos2d, godot.
2) Смотришь как сделано там.
Скорее всего ты ничего не поймешь и у тебя выйдет обычной

vector<Object> v;
while(true) { game.input(dt); freach() {v.update(dame, dt); v.render(game, dt);} }
Ты убьешь кэш и у тебя будет 1.5 fps

> Непонятный для меня момент - это шейдеры и шейдерные программы
Это вообще пушка. Самая сложная-пресложная и рискованная часть - непонимат.
Аноним 09/11/15 Пнд 22:56:08  196692
>>196685
>у тебя будет 1.5 fps
У меня 60 фпс, и то это искуственное ограничение. Что я делаю не так? Не занимаюсь преждевременной оптимизацией?
>рискованная часть
Ты не любитель тестов, да?
Аноним 09/11/15 Пнд 23:12:58  196701
>>196692
Скрины же. Где скрины?
> Ты не любитель тестов
Ты хотел сказать render sandbox'ов?
Аноним 09/11/15 Пнд 23:20:14  196702
>>196701
Скринов полон тред. Я к тому, что пока не даже сцены как таковой. Об оптимизации тут и речи быть не может.
>Ты хотел сказать render sandbox'ов?
Я имел ввиду автоматизированное тестирование. Обычно я пишу тесты до кода, но опыта в С++ и в игровых движках у меня мало, и я даже не представляю, как можно их тестировать. Но планирую приступить к написанию тестов как только архитектура более-менее устаканится
Аноним 10/11/15 Втр 00:22:10  196711
>>196681
Почему бы не использовать рендер в текстуру?
Аноним 10/11/15 Втр 00:54:10  196713
>>196617
>архитектура движка
>классы
>наследование
Лоооол. Просто пушка. Я знал, что ты меня не подведешь.

>Ogre
Кстати, Ogre довольно хуево написан, за остальные не скажу.
Аноним 10/11/15 Втр 00:55:50  196714
>>196702
>gamedev
>TDD
Лоол, жги еще.
Аноним 10/11/15 Втр 01:26:50  196718
>>196617
Я чайлды сделал так - Transform хранит родителя, при доставании координаты складывает с родительской, и так рекурсивно пока не упрётся в конец дерева.
Для шейдеров/текстур запили объекта материала, как в юниче. Для интерфейса вхардкодь какой-нибудь убершейдер с ползунками, лол.
Аноним 10/11/15 Втр 02:02:36  196720
>>196713
>архитектура движка
>классы
>наследование
Думаю, это типичные вопросы, возникающие у неопытных в плюсах и геймдеве разработчиков. А я и не претендую - я пишу сейчас это чтобы кресты выучить.

>gamedev
>TDD
Я не предлагал использовать этот подход в гд. Я спросил, как можно автоматизировать тестирование неизолированных сущностей, которые юнит-тестированию не поддаются.

И таки я вижу применение TDD в геймдеве - например, если стоит задача оптимизировать какое-томесто в движке, то первым делом следует написать тесты производительности (а как иначе ты её замеришь?)
Аноним 10/11/15 Втр 02:15:54  196721
>>196720
А как вообще пишутся тесты и как они применяются?
Много слышу о них, но как-то гайда для тупых не нахожу.
Аноним 10/11/15 Втр 02:16:08  196722
>>196718
>Я чайлды сделал так - Transform хранит родителя, при доставании координаты складывает с родительской, и так рекурсивно пока не упрётся в конец дерева.
Надеюсь, ты сохраняешь значение, чтобы если у объекта несколько дочерних, для каждого не пересчитывать
>Для шейдеров/текстур запили объекта материала
А в формате md5mesh шейдер указывается для модели. Правда этот формат и не умеет хранить материалы. Так что, наверное, так и сделаю, как ты сказал.
Аноним 10/11/15 Втр 02:18:19  196724
>>196617
>К чему должна относиться
У тебя должен быть отдельный класс для какждого чиха. Не делай из движка неперевариваемую вермишель.
Аноним 10/11/15 Втр 02:19:32  196725
>>196721
В тестирование на С++ я не вникал. Утилит полно, например, классическая Check. Надо смотреть гайды по конкретному инструменту. А по общем принципам тестирования целые книги есть.
Аноним 10/11/15 Втр 02:21:05  196726
>>196724
У мен итак есть класс шейдерной программы (и для шейдера отдельный). Я хотел узнать, какова логика смены шейдерных программ.
Аноним 10/11/15 Втр 02:27:24  196727
>>196726
https://github.com/id-Software/DOOM-3-BFG/blob/master/neo/renderer/RenderProgs.h#L133
Аноним 10/11/15 Втр 07:17:43  196744
>>196714
Кстати, где можно почитать что-то внятно аргументированное об этом?
Аноним 10/11/15 Втр 08:52:49  196755
>>196685
>убьешь кеш
>пилит движок на джавадрисне
Какой кеш? Там в любом случае будет 2 фпс, когда объектов на сцене будет больше пяти.
Аноним 10/11/15 Втр 08:59:35  196756
(79Кб, 1259x813)
Посоны, отвлекитесь ненадолго от жарких споров и подскажите, есть ли смысл на десктопе юзать opengl es 2 вместо opengl 2.1?
Пишу на некроноуте, который поддерживает максимум эти версии. Игрушка несложная будет, в 2d, в принципе, много фич мне и не надо. Хочу получить core профиль без deprecated функционала. Как обстоят дела с языком шейдеров у gles 2? Сильно отличается от opengl 2/3? Стоит оно того или нет?
Аноним 10/11/15 Втр 10:52:32  196761
>>196756
GLES 2.0 суть то же самое, что GL 4.0 кокрастыке без депрекейтед фич. Все ограничения GLES 2.0 легко обходятся.
GLSL такой же, единственное, что нужно - это писать точность переменных в шейдерах (highp, lowp и т.д), а так никаких отличий.
Единственное, в чём я сомневаюсь - взлетит ли глес2 на винде, ни разу не пробовал ещё.
Аноним 10/11/15 Втр 11:03:11  196764
>>196756
Кек. Я ееешку откопал нахаляву, на ней только 1.5 поддерживается. Думаю: принять челендж или нахуй послать.
Аноним 10/11/15 Втр 12:41:01  196779
>>196756
А ES запустится на десктопе?
Если нет, то я бы писал на ДХ9.
Аноним 10/11/15 Втр 13:05:07  196786
>>196779
>DX9
Для меня кросс-платформа во главе угла, сам под линуксом прогаю. Под шином планирую только компилять шин-версию.
Под линуксом ES работает, видеокарта - встроенная Intel.
>>196761
А я про винду и не задумался даже, под линуксом всё норм взлетело сходу, думал, что и под шином будет норм. Надо будет попробовать.
Аноним 10/11/15 Втр 20:16:29  196829
(87Кб, 1366x768)
А glViewport - дорогая операция? Можно использовать её на каждый элемент интерфейса прямоугольной формы, или лучше для производительности делать весь интерфейс в одном вьюпорте?
Аноним 10/11/15 Втр 21:14:17  196835
(36Кб, 600x400)
>>196829
Аноним 10/11/15 Втр 21:31:03  196837
>>196829
Нахуя? Тебе дали трансформейшен матрицу, нет блядь, хочу вьюпорт туда-сюда двигать.
Аноним 10/11/15 Втр 21:37:49  196838
>>196829

нет, недорогая, это обычное матричное преобразование
хоть евсь стек матриц преобразованиями забей, производительности похуй
Аноним 10/11/15 Втр 22:15:29  196842
>>196837
>>196838
Почему тогда не убрали glViewport из OpenGL ES? Все остальные матричные операции выкинули
Аноним 10/11/15 Втр 22:15:57  196843
>>196838
В OpenGL ES нет стека матриц. Там вообще нет матриц
Аноним 10/11/15 Втр 22:16:54  196844
>>196842
>Почему тогда не убрали glViewport из OpenGL ES?
Прост шоб был.
>Все остальные матричные операции выкинули
И хорошо. Программируемый пайплайн наше фсё.
Аноним 11/11/15 Срд 01:17:06  196863
(93Кб, 1366x768)
Сделал прикрепление объектов сцены друг к другу через, добавив произвольную базовую матрицу трансформации объекта. Получил таким образом полноценную камеру третьего лица.
Аноним 11/11/15 Срд 14:51:41  196898
>>196863
Слушай, побереги свои отчеты о разработке до следующего раза. Пишешь ты, а стыдно мне.
Аноним 11/11/15 Срд 14:56:07  196899
>>196898
Ты че он же на плюсах и ассемблере пишет, ты радоваться должен.
Аноним 11/11/15 Срд 16:12:06  196918
>>196761
>взлетит ли глес2 на винде
https://github.com/google/angle
Аноним 12/11/15 Чтв 05:07:48  197009
(220Кб, 1366x768)
(98Кб, 1366x768)
Убийца ГТА на подходе! Можно садиться в машину и ездить. Реализм 100% - физика езды на убитом в хлам москвиче присутствует.
Аноним 12/11/15 Чтв 07:01:41  197012
>>197009
Ну это вообще пушка.
Аноним 12/11/15 Чтв 15:55:32  197082
>>197009
А что там с освещением и тенями?
Аноним 13/11/15 Птн 02:09:31  197128
>>197082
Завезу, когда сделаю скелетную анимацию, ибо сейчас надо разобраться с мешами и обектами - понять, кому какие данные нужны для рендеринга, и на основании этого строить классы и их отношения.

Я вот заметил, что кости скелетной анимации и объекты сцены - суть одно и то же: имеют родительский объект и дочерние, матрицу трансформации относительно родителя и локальную. Стоит ли их делать одной сущностью (или потомками одной сущности)?
Аноним 13/11/15 Птн 19:04:20  197187
Подскажите. Пытался писать код в Qt и Вижуале - везде выводит ошибки, мол у меня редист не тот (хотя есть все версии)
Аноним 13/11/15 Птн 20:53:32  197201
(26Кб, 580x346)
>>197187
Што?
Аноним 15/11/15 Вск 00:02:36  197338
(273Кб, 2557x1109)
>>195365 (OP)
Бамп нахуй блять.
Аноним 15/11/15 Вск 02:19:26  197347
>>197338
Что за унтер там на месте геймдизанера?
Аноним 15/11/15 Вск 02:48:32  197351
>>197347
Это отсылка к /gd/
Аноним 16/11/15 Пнд 13:27:45  197534
(1659Кб, 1920x1080)
Почему код, работающий на моих 3 машинах не работает на других? Сделал подарок бате на день рождения, протестировал у себя и на своём планшете, прогнал через gDEBugger - всё отлично, за исключением deprecated функций. А у бати оно не запускается, пиздец!
gluErrorString охуеть какой информативный метод. Недопустимая операция, вот это да! А почему gDEBugger ничего не ловит? Непонимат.
Аноним 16/11/15 Пнд 13:36:49  197539
>>197534
Спектр возможных причин очень широк и выловить такую хуйню, судя по моему опыту, очень сложно.
У меня, например, была такая ситуация: в одном месте я вместо glGenVertexArrays написал glCreateVertexArrays, которые совершенно идентичны за исключением того, что последнюю ввели в стандарт только в 4.5 версии. А я таргетил 3.2. Поэтому неудивительно, что почти на всех компах, кроме моего, моя поделка крашилась. И даже тут интересно: мой комп поддерживает только 4.2 версию
Аноним 16/11/15 Пнд 13:53:47  197543
>>197539
Отправил версию, в которой пишется номер строки, на которой нашлась ошибка. Алсо, нельзя ли настроить gDEBugger, чтобы он проверял совместимость с другими версиями OGL? Было бы здорово.
Аноним 16/11/15 Пнд 15:52:18  197566
>>197534
Делал бы на WebGL - не было бы такой хуйни
Аноним 16/11/15 Пнд 16:07:33  197569
>>197566
Охуенный совет, ваще.
Аноним 16/11/15 Пнд 17:25:28  197580
>>197566
Мой движок ориентирован на десктопы, не буду же я пилить новый движок за 2 дня до батиного праздника.
Аноним 16/11/15 Пнд 18:43:41  197585
>>197580
Я понимаю. Просто ничего подсказать не могу, вот и выебываюсь.

А вообще, если хочешь, могу глянуть твой код незамыленным взором (запустить вряд ли смогу, у тебя же винда-only?)
Аноним 16/11/15 Пнд 20:35:04  197598
Ковырял opengl несколько лет назад, сейчас задумался над парой проектов и возник вопрос. Меня интересует исключительно 2d графика в обоих проектах. Стоит ли из-за этого вкурить современный ogl или взять какое-нибудь простое средство уровня sdl/sfml и работать на нём?
Аноним 16/11/15 Пнд 20:43:02  197601
>>197598
>Стоит ли из-за этого вкурить современный ogl
>или взять какое-нибудь простое средство уровня sdl/sfml
А где связь? sdl/sfml создают тебе окно с контекстом и обрабатывают ввод. А версия gl зависит от того, что поддерживает видеокарта и какие драйвера стоят.
Библиотеку я бы посоветовад glfw. А ogl конечно бери 3.0+, уже не осталось, наверное, компов, которые хотя бы его не поддерживали. Хуле с легаси ебаться
Аноним 16/11/15 Пнд 20:53:18  197604
>>197601
У сдл/сфмл есть свои упрощенные функции для рендеринга, вот где связь.

>>197598
Начни с одной из двух библиотек. Если возможностей окажется мало, то сверху напишешь свой OpenGL-рендерер и будешь его вызывать. Можешь сразу написать класс-обертку над sdl/sfml-рендерером и делать все через нее, чтобы потом легче было переходить на огл.
Аноним 17/11/15 Втр 02:41:00  197643
>>197604
>>197601
>>197598
Ну если 2д то можно попробовать sfml.
Там уже и шейдеры завезены.
https://www.youtube.com/watch?v=K6aAxuIL7h8
Аноним 17/11/15 Втр 14:59:52  197741
>>197585
Нет, должен компилироваться везде, где есть libpng, opengl, glew, freeglut и gcc.
Аноним 17/11/15 Втр 15:25:20  197745
>>197741
Если тут не хочешь выкладывать, можешь связаться со мной в токсе https://tox.chat/ мой ID: 37C1675B1ECC30BF7C09714E5FCE11DFA998EB3641F9816C1D621BF261DDF85711D3F8AAC9E7
Отпиши тут, если напишешь, на всякий случай
Аноним 19/11/15 Чтв 21:05:31  198226
Посоны, такая тема. Вот есть дефолтный фреймбуффер в GL, он подгоняется под размер окна. Я пилю игру на некроноуте, и когда окошко развернуто на максимум, начинает неслабо подтормаживать, ФПС падает с 140 до 50. Вопрос - можно ли управлять размером этого фреймбуффера? Например, чтобы высота всегда была 600, а ширина подгонялась под ratio. И чтобы итоговая картинка как бы ресайзилась и подгонялась под окно. Можно ли так сделать?
Использую голый glfw.
Аноним 19/11/15 Чтв 21:21:12  198228
У бати на ноутбуке программа отваливается на вот этой строчке:
glGenBuffers(1, &this->VBO);
Отваливается с GL_INVALID_OPERATION. У меня на этой строчке она не отваливается. В чём может быть проблема?
Аноним 19/11/15 Чтв 21:24:38  198231
>>198228
У него старый GL, не поддерживающий VBO?
Аноним 19/11/15 Чтв 21:31:25  198233
>>198231
Такие есть? И как быть?
Аноним 19/11/15 Чтв 21:35:45  198235
>>198233
Запросто, если у него старая видеокарта или банально не стоят дрова - может быть доступна только версия 1.1, а VBO появились в 1.5
Если так, то ничем не поможешь, в 1.1 только deprecated функционал, glBegin/glEnd, display lists.
Аноним 19/11/15 Чтв 22:46:25  198244
>>198235
Там и шейдеров нет небось? Это ж ему весь рендерер переписывать, чтоб под легаси работало
Аноним 20/11/15 Птн 04:43:45  198260
>>198233
Посмотри поддерживаемые расширения. Для OGL < 2 должна быть своя функция.
Аноним 20/11/15 Птн 17:14:15  198323
Вкатываюсь с вопросом.
Есть некробук eee, с процессором N450. Официально заявлено, что это поддерживает OpenGL 1.5, а glxinfo говорит "Mesa GL 2.1". То есть Mesa мне сэмулирует то, что есть в OpenGL 2.1 на железе, которое в него не может, так? И интересно, на какую глюкавость можно рассчитывать?
Аноним 20/11/15 Птн 17:22:15  198324
>>198323
Ну по идее квейк 3 может пойти.
И, наверное, даже дум 3, но не бфг версия.
Аноним 20/11/15 Птн 22:27:40  198368
>>198233
С виндой без дров идет софтовый OpenGL 1.1.
Аноним 24/11/15 Втр 14:17:09  199028
Поделитесь солнечной системой запиленной на OpenGL
Аноним 24/11/15 Втр 15:09:35  199039
>>199028
http://www.stellarium.org/ru/
Аноним 25/11/15 Срд 01:27:08  199133
(130Кб, 500x1616)
http://mrdoob.github.io/three.js/
Кто все эти люди? Для чего они делают проекты с таким-то графонием? Им за это платят? Почему в этом треде нет ни 1 картинки, похожей на какую-нибудь из тех проектов? Да что там этот тред, даже дети из унреал и юнити-тредов не делают ничего такого! Что движет этими людьми, делающими графоний на чистом опенгл под браузеры?
Аноним 25/11/15 Срд 02:15:54  199140
>>199039
я исходный код имею ввиду
Аноним 25/11/15 Срд 02:21:08  199141
>>199133
Это боги.
Аноним 25/11/15 Срд 05:59:08  199153
>>199140
https://bazaar.launchpad.net/~stellarium/stellarium/trunk/files
Аноним 25/11/15 Срд 07:27:25  199156
>>199133
Ну там Сони, еще какая-то хуйня. Да, платят.
Аноним 25/11/15 Срд 09:02:00  199165
>>199133
Зашел в одну демку. Кубики и шарики цветные, для 2001 года довольно красиво. Тормозит только сильно.
Зашел во вторую - моментально были отожраны 2гб оперативки, комп вошёл в ступор и завис, пришлось ребутаться.
Ну и нахуй нужно такое 3д в браузере?
Аноним 26/11/15 Чтв 22:12:50  199520
(2857Кб, 800x614)
Сделал загрузку bsp геометрии с лайтмапами.
Теперь надо столкновения делать.
Аноним 26/11/15 Чтв 22:37:45  199521
>>199520
Что у тебя с фпсом?
Аноним 26/11/15 Чтв 22:38:40  199522
>>199521
Это только на записи видео.
Так я выставил ограничение на 60.
Аноним 26/11/15 Чтв 23:46:35  199530
>>199520
Нашёл проблему.
pvs не хочет нормально считаться и всегда выводит всю геометрию за исключением когда я смотрю на стенку.
Аноним 27/11/15 Птн 13:01:10  199605
>>199530
Лал. Мамкин рендерщик чтоли? Какие нахуй фпс? Только миллисекунды. И не больше 3мс на кадр.
Аноним 27/11/15 Птн 13:20:09  199610
(40Кб, 604x453)
>>199605
Ты даун какой-то.
Аноним 27/11/15 Птн 14:00:58  199622
в чём писать?
на вижуал студио нихуя не понятно, на кьютэ ругается на glut какой-то
можно эту херню как-то поставить и чтоб оно без проблем работало, или всё через жопу как всегда?
Аноним 27/11/15 Птн 14:06:45  199625
>>199622
Юзай Qt + SDL
http://pastebin.com/rWcQg0QQ
Аноним 27/11/15 Птн 19:44:03  199695
ДА БЛЯДЬ НЕ ТОНЕМ
Аноним 01/12/15 Втр 04:01:14  200313
(5953Кб, 800x713)
>>199520
>>199530
Наконец-то я починил эту эбалу!
Судя по всему всё дело в системе координат данных: вершин, плоскостей и др.
Аноним 01/12/15 Втр 10:37:49  200343
>>200313
Надеюсь хоть не на OpenGL 1.0 пишишь?
Аноним 02/12/15 Срд 00:52:08  200512
>>200343
Конечно же нет.
Аноним 02/12/15 Срд 01:00:02  200513
>>200512
На DX?
Аноним 02/12/15 Срд 01:01:18  200514
>>200513
Тогда зачем я тут сижу? Это же ГЛ тред.
На 3ей версии пилю я.
Аноним 02/12/15 Срд 10:28:19  200568
>>200313
Ты специально q3-карты грузишь или это просто пример такой?
Аноним 02/12/15 Срд 11:27:40  200577
>>200568
Что значит специально?
Я могу и свои загрузить, вон как выше видео: несколько коробок соединённых проёмами и всё.
А квейковские карты я беру как эталон.
Если они работают правильно и загружаются, то значит я не ошибся.
Аноним 03/12/15 Чтв 20:41:13  200903
Рисовал треугольники еще на второй версии. Сейчас решил вспомнить молодость и нихуя не понятно. Зачем pushmatrix выпилили, например? Самому теперь эту херню пилить?
Аноним 03/12/15 Чтв 21:03:49  200913
>>200903
Ссылки на тьюториалы в шапке для кого запилены?
Аноним 03/12/15 Чтв 22:41:20  200945
DirectX-тред не нашел и прикатился сюда. Можно ли в DX9 раскрашивать Mesh в разные цвета?
Аноним 03/12/15 Чтв 23:03:37  200950
(16Кб, 752x446)
Будущему 3d художнику/гейдизайнеру это знать надо?
Аноним 03/12/15 Чтв 23:22:50  200955
>>200950
нет конечно
будущий геймдизайнер должен знать дх
Аноним 05/12/15 Суб 17:02:02  201250
>>200577
Понял, ты взял q3-формат за эталон.
Аноним 05/12/15 Суб 17:25:35  201252
>>200950
Абсолютли нат.
Аноним 06/12/15 Вск 03:14:58  201357
>>201250
Ничего другого для хранения геометрии уровня я не придумал и поэтому просто уже воспользовался готовым.
Аноним 06/12/15 Вск 14:39:23  201444
>>201357
Яснопонятно. Я бы на твоем месте (хрен когда доберусь даже до такого уровня) попробовал свежий формат карт от Валв. В кишках тот же bsp, но побогаче будет.
Аноним 07/12/15 Пнд 22:32:29  201703
>>201444
Да bsp это, видимо, структура для хранения данных.
Хочется ещё разобраться с форматом карт в думе 3.
Там уже порталы юзаются, а не заранее рассчитанный pvs.
Аноним 08/12/15 Втр 06:25:44  201755
>>195365 (OP)
Тут можно поиграться с белндингом:
http://www.andersriggelsen.dk/glblendfunc.php
Аноним 08/12/15 Втр 14:12:12  201814
>>201755
Охуеть, как круто.
Палю годноту быдлу: https://www.shadertoy.com/
Аноним 09/12/15 Срд 18:05:50  202088
(1724Кб, 1058x892)
Судя по всему сделал столкновения. Проблема опять была с системой координат.
Теперь надо допилить скольжение вдоль стены, а то сейчас как-будто бы за стенки/пол зацепляешься.
Добавить гравитацию и может быть прыжки.
Аноним 09/12/15 Срд 18:31:19  202092
>>202088
Что там такое зеленое промелькнуло в последних кадрах?
Аноним 09/12/15 Срд 18:48:17  202099
>>202092
А. Это цвет которым буфер очищаешь.
Я эти "дыры" тоже заметил сразу, особенно когда камеру быстро вращаешь.
Почему так происходит я не могу точно сказать.
Скорее всего из-за того, что процессор не может достаточно быстро отсылать команды видеокарте чтобы та всегда была нагружена и из-за этого могут быть такие дыры.
Думаю можно решить или как-то сгладить этот косяк тем, что я буду запоминать в каком листе дерева я был на предыдущем кадре и при вычисления новой позиции я будут сравнивать со старой.
Если они совпадают то и считать видимость заново не имеет смысла.
Аноним 09/12/15 Срд 18:53:58  202102
>>202099
То есть у тебя некий "список видимости" строится асинхронно?
Аноним 09/12/15 Срд 18:58:33  202103
>>202102
> То есть у тебя некий "список видимости" строится асинхронно?
Да, только параллелизма у меня нету. Я в нём пока не разбираюсь.
http://graphics.cs.brown.edu/games/quake/quake3.html#VisFindCluster
Аноним 09/12/15 Срд 20:29:53  202115
>>202103
Мда, вот это, как мне кажется, плохо. А сколько времени уходит на построение? Может не так уж и дорого каждый кадр его делать? Да и обходились же как-то одним потоком раньше.
Аноним 09/12/15 Срд 20:35:53  202118
>>202115
> А сколько времени уходит на построение? Может не так уж и дорого каждый кадр его делать? Да и обходились же как-то одним потоком раньше.
Всё происходит крайне быстро.
Я имел ввиду то, что видеокарта работает гораздо быстрее процессора и из-за этого он не может за ней угнаться.
Аноним 10/12/15 Чтв 10:22:10  202176
>>202088
Как пилить BSP уровни? Только в хаммере? Блендер не может их экспортить? Всегда загружал octree и в хуй не дул, а тут такие возможности! Тоже хочу BSP. И как у этого формата с открытыми большими пространствами? Нужно будет подгружать отдельные куски, как в первом полураспаде?
Аноним 10/12/15 Чтв 11:24:30  202181
(183Кб, 424x582)
>>202176
> Как пилить BSP уровни?
Я пилю в пикрелейтед.
Мне понравился больше чем gtkradiant.
Потом через q3map2 пропускаю карту:
https://en.wikibooks.org/wiki/Q3Map2

> Блендер не может их экспортить?
Вот есть скрипт для Блендера, но он для карт первого квейка.
https://developer.blender.org/T35778

> И как у этого формата с открытыми большими пространствами?
Наверное не особо. То есть ГТА на таком не запилить. Он для закрытых пространств.

> Нужно будет подгружать отдельные куски, как в первом полураспаде?
Судя по всему да.
Аноним 11/12/15 Птн 15:31:16  202378
Ещё есть идея добавить поддержку pk3 архивов.
Я смотрел некоторый код.
Выглядит довольно просто.
Аноним 19/12/15 Суб 02:28:46  203803
ребята, помогите пожалуйста
есть солнечная система:
http://pastebin.com/je0TTAPP

помогите создать +2 планеты (любые)

в коде там типа солнце, земля и луна, они крутятся по оси вокруг солнца
Аноним 19/12/15 Суб 05:05:15  203806
>>203803
> помогите создать +2 планеты (любые)
Ну так у тебя уже есть Земля.
Добавь Марс, например, но с другими параметрами.
В чём проблема?

Аноним 19/12/15 Суб 05:15:17  203809
(1607Кб, 1042x858)
Добавил вещи (пока 3 штуки) и анимацию оружия.
Аноним 19/12/15 Суб 11:29:21  203834
>>203806
я когда что-то добавляю - у меня только луна пропадает и всё :(
Аноним 19/12/15 Суб 11:41:50  203836
>>203809
Двиг опенсорц?
Аноним 19/12/15 Суб 12:01:00  203837
>>203836
В смысле? Это я сам делаю, но исходники пока никуда не выкладывал.
Аноним 19/12/15 Суб 13:07:52  203840
>>203809
Зочем спрайты постоянного размера?
Аноним 19/12/15 Суб 13:11:10  203841
>>203840
Они у меня наоборот уменьшаются когда я к ним приближаюсь.
Я с биллбордами проебался дня два и оставил их так.
Потом поправлю.
Аноним 19/12/15 Суб 13:24:28  203846
>>203841
а можешь мне с солнечной системой помочь?
тебе эт наверное как два пальца обосцать
Аноним 19/12/15 Суб 13:26:06  203848
>>203846
Иди учи gl3, а про старые версии забудь.
Аноним 19/12/15 Суб 13:31:49  203849
>>203848
мне эту солнечную систему в понедельник сдать и я до конца своей жизни смогу об этом больше не вспоминать
Аноним 19/12/15 Суб 13:32:57  203850
>>203849
> мне эту солнечную систему в понедельник сдать и я до конца своей жизни смогу об этом больше не вспоминать
Ничем помочь не могу.
Аноним 19/12/15 Суб 13:36:51  203853
>>203850
кто бы сомневался, лол
Аноним 19/12/15 Суб 13:37:30  203854
>>203853
такие посылаторы с их "иди учи %random_lang%" никогда ни с чем помочь не могут, кроме как давать глупые советы)
Аноним 19/12/15 Суб 14:28:57  203861
>>203841
https://www.youtube.com/watch?v=puOTwCrEm7Q&index=18&list=PLW3Zl3wyJwWOpdhYedlD-yCB7WQoHf-My

Не помню, постил или нет.
Аноним 19/12/15 Суб 14:42:51  203862
>>203861
Да, я смотрел это, но увы у меня ничего не вышло.
В будущем хочу попробовать через геометрический шейдер их генерировать.
https://stackoverflow.com/questions/8608844/resizing-point-sprites-based-on-distance-from-the-camera
Аноним 19/12/15 Суб 19:17:28  203896
(1003Кб, 977x725)
Исправил биллборды:
http://www.opengl-tutorial.org/ru/intermediate-tutorials/billboards-particles/billboards/#solution-2--the-3d-way
Теперь чотко.
Аноним 20/12/15 Вск 10:22:27  203978
(1944Кб, 972x790)
Хенда хох!
Аноним 20/12/15 Вск 12:34:58  203990
>>203978
тебе нужно сделать эффект выстрела из дробовика и более плавную анимацию у бота после выстрела
Аноним 20/12/15 Вск 14:25:43  204000
>>203990
Ноу щит шерлок!
Аноним 20/12/15 Вск 14:52:08  204005
(249Кб, 1010x762)
Аноны, в универе предложили несколько тем, связанных с рендерингом. Некоторые из них кратко: запилить сглаживание для объемной визуализации (3д-текстура); антиалясинг для depth peeling; исследовать инструментарий или запилить свой для работы с блоком шейдеров.
Для меня интересно разобраться в этой теме, но я пока крайне поверхностно шарю в этом.
Вопрос в том, с чего начать изучение рендеринга? Если я просто научусь работать с OpenGL по туториалам, то хватит ли мне знаний, чтобы уверенно разбираться в этом и нормально запилить задания? Или нужно более глубокие знания OpenGL? Или вообще стоит начать с каких-то вообще азов рендеринга? Если так, то какие ресурсы или книги можете посоветовать для этого?
Аноним 20/12/15 Вск 15:09:26  204010
>>204005
Хера се у вас универ, я прям завидую.
Насчет изучения рендеринга, то я бы посоветовал начать с изучения rendering pipeline (можно даже начать со статьи в википедии https://en.wikipedia.org/wiki/Graphics_pipeline, и дальше по ссылкам). И параллельно делай туториалы, да. И параллельно читай спецификации (например OpenGL https://www.opengl.org/registry/doc/glspec43.core.20120806.pdf . Да, спецификации написаны довольно сложным языком, но если сможешь осилить и понять, что там написано, то это будет громадный бонус). Также учи матан: матрицы, векторы, вот это все.
По темам, гугли whitepapers: много умного народа уже наверняка глубоко исследовала эти темы, так что сначала полезно изучить все достижения в этой области, прежде чем пилить свой велосипед.
Аноним 20/12/15 Вск 15:11:13  204012
>>204005
> Если я просто научусь работать с OpenGL по туториалам, то хватит ли мне знаний, чтобы уверенно разбираться в этом

Зависит от твоих познаний в математике и (что куда более важно) умении её применять.
Аноним 20/12/15 Вск 15:13:31  204015
>>204005
На Хабре был цикл статей "Пилим свой ОпенЖыЭль", погугли.
Аноним 20/12/15 Вск 18:01:53  204036
>>204010
Спасибо за инфу, буду изучать.

>>204012
Ну матан, линал на уровне первого курса знаю в принципе; если что-то дополнительное потребуется, то по ходу дела, думаю, раскурю.

>>204015
Это http://habrahabr.ru/post/248153/ ? Обзорно просматривал как-то, но думаю теперь подробнее разобраться и закодить все самостоятельно.
Аноним 26/12/15 Суб 21:46:20  204945
Годнота!
http://philipbuuck.com/announcing-handmade-quake
https://www.youtube.com/user/philipbuuck/videos
Аноним 27/12/15 Вск 02:17:53  204968
>>204945
https://www.youtube.com/watch?v=HQYsFshbkYw
Слишком много лишнего. Это гораздо шустрее.
Аноним 27/12/15 Вск 02:20:06  204969
>>204968
А, я в глаза долблюсь, тред про OpenGL.
Аноним 27/12/15 Вск 14:11:16  204995
(14Кб, 992x694)
Аноны, поясните за кубы. Почему когда я делаю их порядком тысячи, начинает тормозить? А еще где взять пример нормального управления камерой?

http://pastebin.com/riYEtR8J

А еще, что бы изменить размеры куба, надо же вершины менять? Тогда меняется VAO, но почему говорят, что его менять не надо?

Аноним 27/12/15 Вск 15:41:19  205025
>>204995
Потому что VAO и должен быть фиксированный, размеры куба нужно менять матрицами преобразований.

Если у тебя тысяча VAO для тысячи кубов - неудивительно, что они тормозят.
Аноним 27/12/15 Вск 15:53:49  205030
>>204995
> Почему когда я делаю их порядком тысячи, начинает тормозить?
Юзай инстансинг.

> А еще, что бы изменить размеры куба, надо же вершины менять?
У каждого куба есть матрица модели.
Там ты можешь через неё менять размер, угол поворота и др.
Аноним 09/01/16 Суб 18:36:02  207300
Какой из туториалов лучше?

http://www.opengl-tutorial.org/
https://triplepointfive.github.io/ogltutor/index.html
https://web.archive.org/web/20150315165927/http://www.gametutorials.com/tutorials/opengl-tutorials/
https://code.google.com/p/gl33lessons/
Аноним 09/01/16 Суб 19:30:35  207309
>>207300
Первая и вторая ссылки вроде норм.
Я по этому начал изучать: http://www.learnopengl.com/
Там и про сборку библиотек написано, и про пайплайн с шейдерами написано, и за математику вроде годно поясняется, и в конце уроков даже небольшие упражнения на закрепление материала есть.
Аноним 09/01/16 Суб 19:34:26  207310
>>207309
Спасибо за ссылку, бро. Наверное, это лучший вариант.
Аноним 14/01/16 Чтв 21:16:04  208190
Я щас чота пиздану, тока сильно не бейте - Как сделать освещение P.T. в opengl/glsl? Чот один примитив находится в уроках, а нужен направлющий толчок.
Аноним 15/01/16 Птн 19:57:47  208314
>>205025
>>205030

Спасибо. Теперь все работает отлично.
Получается для каждого класса я буду делать свой VAO? Типа для куба, треугольника, и.т.д?

А еще насчет текстуры. Почему-то мои кубы просто игнорят ее бинд. Я же должен для каждого куба бинд делать?
Аноним 16/01/16 Суб 05:31:04  208360
>>208314
> Я же должен для каждого куба бинд делать?
Оно несколько иначе работает.
Биндишь текстуру и рисуешь свои кубы.
То есть текстура биндится один раз в определённый слот я про glActiveTexture перед отрисовкой.

> Получается для каждого класса я буду делать свой VAO? Типа для куба, треугольника, и.т.д?
Не. VAO помогает тебе устанавливать атрибуты для рисования glEnableVertexAttribArray, glVertexAttribPointer.
То есть есть смысл именно в том, что ты объединяешь при помощи этого VAO меши с похожими атрибутами.
Аноним 16/01/16 Суб 12:37:39  208423
>>208190
Там по идее PBR+GI, дико комплексная система. Простым glsl не обойтись.
Аноним 16/01/16 Суб 19:41:00  208500
>>208423
>pbr
Это ты о photorealistic based render?
>gi
А это что?
Аноним 16/01/16 Суб 22:26:55  208560
>>208190
> освещение P.T.
Там дохера всего. Если брать только core, то это physics based shading + global illumination. Остальное уже всякие SSAO и прочее. Если ты не работал и не знаешь, как обстоят дела с артом в ААА на западе, то я тебе поясню: шейдера и постэффекты делают художники, а не программисты. Их не копипастят из интернета. Программисты только оптимизируют всякое гавно + фичи.
Аноним 17/01/16 Вск 08:22:25  208605
(53Кб, 1280x720)
>>208560
> physics based shading
> делают художники, а не программисты
Аноним 17/01/16 Вск 15:26:42  208643
>>208605
> мемы-мемаски
> обоссаные /gd-асики
Если ты умеешь только в буквы-слова, а не смысл и опыт, то мне тебя жаль.
Аноним 17/01/16 Вск 16:19:16  208653
>>208643
>мам мемы
>мне тебя жаль
Бревно в глазу
Аноним 17/01/16 Вск 18:19:28  208682
>>208653
Какое же ты быдло обоссаное. Если ты пишешь свой движок, то ты пишешь pbr+gi сам. Если делаешь игру на движке, то всё делает лайтинг/енвайромент артист в редакторе.
Аноним 18/01/16 Пнд 12:25:54  208852
>>208682
Чот ты ваще куда-то увильнул
Аноним 16/02/16 Втр 20:52:54  225592
https://www.khronos.org/vulkan/

Vulkan is Here!

Khronos launched the Vulkan 1.0 specification on February 16th, 2016 and Khronos members released Vulkan drivers and SDKs on the same day. Below you will find everything you need to come up to speed on Vulkan and to forge ahead and explore whether Vulkan is right for your engine or application.
Аноним 16/02/16 Втр 21:23:49  225610
>>225592
постепенно наполняют гитхаб. это радует
Аноним 16/02/16 Втр 22:49:13  225677
>>225592
Функции с десятком параметров. Они это серьезно? Как можно было превратить няшный OpenGL в это?
Аноним 16/02/16 Втр 22:58:56  225694
>>225677
А что за функции ты имеешь ввиду?
Может они один раз при создании контекста или около того вызываются?
Аноним 16/02/16 Втр 23:46:14  225786
>>225694
vkCmdWaitEvents. Сколько бы раз не вызывались - это мало похоже на качественный API. А обилие структурок до боли напоминает DirectX.
Аноним 17/02/16 Срд 22:44:05  226753
>>225786
В плюсовом враппере первый аргумент уйдет, так как это будет метод класса, три пары переменных "количество хреней-указатель на хрени" заменят векторы хреней. Ну и количество аргументов нифига не будет самой большой проблемой при программировании движка на вулкане. Да что же всё так лагает с бета-драйвером? Амуда, пожалуйста.
Аноним 18/02/16 Чтв 01:56:31  226849
>>226753
> Да что же всё так лагает с бета-драйвером? Амуда, пожалуйста.
А мой видюхи в бета драйверах вообще нету почему-то хотя писали, что вулкан будет работать на видео с огл 4 и выше.
Аноним 20/02/16 Суб 16:24:07  229497
В шейдерах только матрица проекции? Model-view матрица все еще в приложении?
Аноним 20/02/16 Суб 17:21:49  229537
>>229497
Штоу?
Аноним 21/02/16 Вск 22:51:31  231372
Как структурируется обычно в опенгл?. Вот, например, модель персонажа - она целиком в одном vao?
Аноним 22/02/16 Пнд 14:22:34  232058
>>231372
Что ты имеешь ввиду?
Объясни поподробнее.
Аноним 22/02/16 Пнд 17:50:26  232407
>>195365 (OP)
Нвидиа как всегда
https://devtalk.nvidia.com/default/topic/917161/vulkan/fermi-support-/
Аноним 26/02/16 Птн 09:56:04  238176
Как организуется связь с gpu-ram при виртуальном текстурировании? Загрузка страниц в gpu-ram по требованию? glTexImage2D и тд
Аноним 04/03/16 Птн 23:41:05  241603
(67Кб, 600x901)
Бамп!
Аноним 05/03/16 Суб 01:31:59  241631
В какой момент расжимаются сжатые текстуры?
Аноним 07/03/16 Пнд 22:52:23  242450
>>241603
Они же не будут крутиться?
Аноним 07/03/16 Пнд 23:16:56  242472
>>242450
Ты же не инженер!
Аноним 07/03/16 Пнд 23:39:26  242484
>>242472
!Инженер я не ты журнал?!
Аноним 08/03/16 Втр 13:39:41  242740
>>241603
Они не будут крутиться. лол
Аноним 08/03/16 Втр 13:55:43  242744
>>242740
ну так Россия же
книга по погроммированию с обложкой на которой бесконечной цикл
книга по тридэмаксу с обложкой на которой лента мёбиуса
книга по пикселарту с обложкой на которой кисточка и палитра
Аноним 08/03/16 Втр 20:11:43  242822
>>242740
Дебилы без пространственного мышления, откуда вы лезите?
Аноним 08/03/16 Втр 20:21:58  242828
>>242822
Если они у тебя крутятся то обратись к психиатру.
Аноним 08/03/16 Втр 22:08:08  242861
>>242828
Поехавший, попробуй представить, что верхний левый - заводила. И посмотри. Если не можешь, у тебя явно проблемы.

мимокрок
Аноним 08/03/16 Втр 22:12:16  242864
>>242861
>центральня симметрия
>верхний-левый
дебил
Аноним 08/03/16 Втр 22:32:07  242880
>>242864
>думает, что эта хуйня может крутиться только так, как ходит часовой механизм
>всерьёз называет кого-то дебилом
Аноним 09/03/16 Срд 07:58:53  242985
(130Кб, 600x901)
>>242861
Теперь рассказывай как оно все крутится в твоем воспаленном могзгу.
Аноним 09/03/16 Срд 08:01:35  242986
>>242985
ну эт
ортографик вью
камеру сверху
и они смещены по высоте
наибали тип))))
Аноним 09/03/16 Срд 08:04:03  242987
>>242986
Затралели лалок вапще))))))))))
Аноним 09/03/16 Срд 08:43:55  243019
>>242985
Дебил без пространственного мышления чирикает красными стрелочками.
Аноним 09/03/16 Срд 08:47:00  243025
>>243019
>мам смотри я тралю
Аноним 09/03/16 Срд 08:48:55  243026
>>243019
> пространственное мышление
> загадка уровня /b
Аноним 09/03/16 Срд 08:54:59  243031
>>243025
Представь, что верхний-левый - заводила и все не ограничивается вариантом, когда они ходят, как часы. Напряги хоть раз свой мозг.
Аноним 09/03/16 Срд 09:00:07  243037
>>242986
>ортографик
>тени
Аноним 09/03/16 Срд 09:12:25  243039
>>243026
Эксперимент
https://2ch.hk/b/res/119374864.html
Аноним 09/03/16 Срд 09:59:12  243063
>>243039
> #2
> Они в одной плоскости?
топ мхех
не зря я сидел в /b
Аноним 09/03/16 Срд 10:03:49  243064
>>243037
амбиент окклюжн вместо теней
селф-иллюминейшен на 100%
Аноним 09/03/16 Срд 15:53:30  243181
>>242744
Что не так с лентой Мёбиуса?
Аноним 09/03/16 Срд 15:55:22  243183
>>243181
в 3дмаксе сделай
Аноним 09/03/16 Срд 15:56:45  243185
>>243183
В блендере могу.
Аноним 09/03/16 Срд 16:01:50  243186
>>242744
> ну так Россия же
Дизайнеры же.
Аноним 09/03/16 Срд 16:02:53  243187
(7Кб, 300x168)
>>243183
Легко.
Аноним 09/03/16 Срд 16:14:32  243191
>>243187
я обосрался, обтеку ща
группы сглаживания работают? а хотя хуле им не работать, да
Аноним 10/03/16 Чтв 04:23:34  243413
(251Кб, 2706x1144)
(264Кб, 846x227)
Лол, чёт я нихрена не понял, а как мне не делить вертикальную синхронизацию между всем программами на opengl?
Сочетания dx+gl/dx+dx уживаются спокойно друг с другом. Но gl в количестве больше одного стакается с другими, пусть там что мои программы, что чужие игры.
Первый пик, всё на gl, второй - три игры на dx.
Аноним 10/03/16 Чтв 23:54:50  243723
(5874Кб, 960x540, 00:00:13)
Живительные кубы в тред.
Аноним 11/03/16 Птн 00:16:13  243729
(399Кб, 1366x724)
>>243723
Вот тебе ещё копрокубы, засранец.
Аноним 11/03/16 Птн 00:20:27  243731
>>243723
Спасибо, повалялся 5 минут в конвульсиях.
Аноним 11/03/16 Птн 00:35:38  243736
>>243723
А код покажешь?
Аноним 11/03/16 Птн 00:58:25  243743
(38Кб, 862x688)
>>243736
Аттрактор Лоренца, в остальном почти всё как на learnopengl.
Аноним 11/03/16 Птн 15:05:10  243912
А в чём суть новых версий gl? Каждая версия это просто некоторый минимум поддерживаемых расширений, или что?
Я просто много лет инициализирую gl как версию 1.0, а к всяким шейдерам/хуэйдерам как к расширениям отношусь. По скорости вроде как всё соотвествует чужим программам, никаких недостатков. В чём разница, зачем нужны версии, кроме как чтоб кратко говорить о примерном уровне карты?
Аноним 11/03/16 Птн 15:28:06  243917
(59Кб, 610x344)
>>243912
glew, glm. Ниже не имеет смысл копать. Всё есть в коде этих либ, если захочешь глубоко копнуть.
> В чём разница
C opengl 2.0 появился программируемый пайплаин. А это +100 человек в отделе рендера и +10000 больше строк кода + шейдеров для норм картинки. Фактически это ёба-монст для графона. OpenGL 5 = OpenGL 1 + тоны расширений от всяких ати-нвидиа.
Аноним 11/03/16 Птн 16:40:44  243960
>>243917
А что можно сделать эдакого с помощью геометрических шейдоров?
Аноним 12/03/16 Суб 15:12:15  244212
>>243960
Генерировать геометрию на лету.
Аноним 12/03/16 Суб 16:56:00  244237
>>244212
Покажи пример, чтобы я обоссался
Аноним 12/03/16 Суб 17:42:00  244254
>>244237
https://stackoverflow.com/questions/8608844/resizing-point-sprites-based-on-distance-from-the-camera
Аноним 12/03/16 Суб 18:23:29  244279
>>244254
Но ведь для этого не требуется геометрический шейдер вовсе.
Не знаю как сейчас, но несколько лет назад геометрические шейдеры были очень тормозные, так как из-за них карте неизвестно заранее сколько геометрии нужно будет рисовать, и использовать их для изменения размеров спрайтов по меньшей мере неэффективно. Так то, спрайты в зависимости от расстояния до камеры можно было менять ещё даже через низкоуровневый вершинный шейдер, который ARB_vertex_program, когда про glsl никто ещё даже не слышал.
Аноним 12/03/16 Суб 20:13:53  244306
>>244279
>из-за них карте неизвестно заранее сколько геометрии нужно будет рисовать
>layout (triangle_strip, max_vertices = 4) out;
>max_vertices
Передаем точку из неё геом шейдер делает парочку треугольников. Выгода.
Мимо
Аноним 12/03/16 Суб 20:46:08  244320
>>244279
Слышал, то ли в скайриме, то ли в крузисе снег на деревьях генерировали шейдором.
Аноним 12/03/16 Суб 22:29:41  244377
>>244320
Это называется частицы.
Аноним 13/03/16 Вск 08:49:56  244451
>>244377
Текстуры, а не частицы.
Аноним 13/03/16 Вск 09:52:43  244462
>>244451
Шейдер.
Аноним 13/03/16 Вск 12:14:40  244490
(26Кб, 655x702)
Почему у opengl такое отставание?
Аноним 13/03/16 Вск 12:23:41  244493
>>244490
Дело в дровах.
Аноним 13/03/16 Вск 12:36:31  244497
>>244490
Почему обычно тормозит кривое кириллоговно?
Аноним 13/03/16 Вск 14:59:08  244543
>>244490
За openGL никто не следит. Он открытый, микрософтам например не выгодно делать чтоб openGL был каким-то популярным, так как тогда куда большая часть игр перекатится на люниксы или ещё куда, и со всякими нвидиями у них договор какой-нибудь, быть может.
Мне кажется дело в дровах. Вот такой баг есть (>>243413 ), например. Я в /pr поспрашивал, у кого-то всё в норме, у кого-то такой же эффект. Помимо этого, OBS не может захватывать программы на openGL. Причём, если запускать те же программы на встроенной карте от интела, всё работает. Что синхронизация в норме, что obs изи захватывает. То есть проблема конкретно в драйвере нвидии, и видимо с быстродействием что-то подобное. А с dx везде всё работает правильно, и захватывается всё как надо.
Аноним 13/03/16 Вск 15:15:13  244546
>>244543
>большая часть игр перекатится на люниксы


Ты такой дегенерат, что просто пиздец. Даже так - пизденящий душу пиздец. Кому твоя ссаная прошивка для роутеров нужна, у которой доля на десктопах - в пределах погрешности измерений?
Аноним 13/03/16 Вск 15:26:38  244553
>>244546
Большая часть не в смысле, что >50%, а в смысле что несколько более крупная доля игр, чем сейчас. Я же написал "куда большая", что говорит конкретно какое значение я имел ввиду. Например 15%, заместо 5%.
>Ты такой дегенерат, что просто пиздец.
Ага. Я не разбираясь в теме с потолка предположил первый бред который в голову пришёл, по идее то микрософтам вообще может не быть дела до OpenGL.
Аноним 13/03/16 Вск 17:19:02  244576
>>244490
DX на win, xbox
у PS3-4 вообще своё PSGL/LibGCM
на мобилах Unity
Фактически, OpenGL никто не юзает кроме фриков
Аноним 13/03/16 Вск 17:25:06  244577
(14Кб, 232x310)
>>244576
>на мобилах Unity
Аноним 13/03/16 Вск 17:41:05  244578
>>244577
Ладно, уговорил. Мобилы, линукс, фрики.
Аноним 13/03/16 Вск 21:16:29  244623
>>244490
Нахуя тебе больше 60 fps в игре? Все равно твой ссаный монитор физически не выдаст больше 60-75 кадров в секунду.
Аноним 13/03/16 Вск 21:20:38  244625
>>244576
> на мобилах Unity
Юнити лишь движок, а вот графическая часть в нём как раз таки на опенгл.
Ты долбаёб или прикидываешься?
Аноним 13/03/16 Вск 23:03:11  244647
>>244625
> а вот графическая часть в нём как раз таки на опенгл
Нет. То есть, он может в гл, но если можно, то работает на дх.
Аноним 13/03/16 Вск 23:38:21  244656
>>244647
> то работает на дх
Как он на андроиде или айос/мак будет работать на дх?
Аноним 14/03/16 Пнд 11:48:18  244745
(115Кб, 680x376)
Пилю свой кириллодвижок. Где почитать про буферы и шейдеры?
Аноним 14/03/16 Пнд 12:55:45  244761
>>244745
ОП пост для кого составлен?
Аноним 14/03/16 Пнд 13:08:07  244765
>>244745
готовишь анус для снульчеканкурса?
Аноним 19/03/16 Суб 15:13:09  246578
(22Кб, 500x500)
Объясните ка мне тупому по простому что такое: normalized device coordinate (NDC) space, clip-space, and window space.
Аноним 06/04/16 Срд 19:01:51  251387
(34Кб, 200x177)
http://pastebin.com/r0Bd2Yih
Что я делаю не так?
c#
Tao (обертка над GLUT)
gl4csharp (обертка над GL)
Качество кода, комментов и прочее - говно, ведь я ебаный ньюфаг.
Скажите лучше что не так с ГЛ вызовами.
По итогу я вижу только заливку и ИНОГДА в центре бывает одна точка.
Аноним 06/04/16 Срд 19:51:23  251402
>>251387
Попробуй glgeterror потыкать.
Аноним 06/04/16 Срд 20:05:06  251409
>>251402
No Error
Аноним 06/04/16 Срд 20:10:41  251411
>>251387
>Что я делаю не так?
Используешь gl

>>251387
> я вижу только заливку и ИНОГДА в центре бывает одна точка.
А ты что надеялся увидеть, crysis?
Аноним 07/04/16 Чтв 02:05:32  251503
>>251387
Вьюпорт за тебя либа делает?
Аноним 12/04/16 Втр 00:29:19  252499
>>251387
>> 41. Gl.VertexAttribPointer
>> ...
>>156. Gl.BindVertexArray(VAO);
VAO надо биндить до вызовов VertexAttribPointer
Аноним 12/04/16 Втр 00:29:48  252500
>>252499
>> 141. Gl.VertexAttribPointer
>> ...
>>156. Gl.BindVertexArray(VAO);
VAO надо биндить до вызовов VertexAttribPointer

fix
Аноним 12/04/16 Втр 00:32:49  252502
>>252500
алсо поставь себе деббагер
https://developer.nvidia.com/nvidia-nsight-visual-studio-edition
Аноним 23/04/16 Суб 07:11:48  253993
Линукс сосет
Аноним 07/05/16 Суб 11:26:04  256409
Ананасы, почему не заводится? Вроде бы все правильно сделал, или нет?
http://pastebin.com/BvvC8pHF
Аноним 07/05/16 Суб 11:32:15  256411
>>253993
Схуяли? Все там норм с опенглем. Есть проприетарные нвидиевские драйвера.
Аноним 07/05/16 Суб 11:33:28  256412
>>256409
Ананас, тебя кто научил дергать АПИшные функции и не обрабатывать ошибки?
Аноним 07/05/16 Суб 11:36:42  256414
>>256412
Ну я только начал. Читаю Addison Wesley: OpenGL Programming Guide. Он там уже про 4.3 кряхтит что-то с самого начала и шейдер загоняет сразу же. Сорцов не искал его и посмотрел, как в на офсайте опенгл загружают шейдеры, сделал по подобию.
Аноним 07/05/16 Суб 11:46:26  256417
>>256414
Юзай glGetError после каждого (почти) вызова.

Осторожно: сразу после инициалиации могут быть коды ошибок. Есть смысл ее подергать в цикле в самом начале, пока не вернет GL_NO_ERROR.

В твоей книге, кстати, в самом начале есть пример, как вытаскивать ошибки компиляции шейдеров. Сделай такую штуку у себя. Вообще сделай инфраструктуру для обработки ошибок, потом сам себе спасибо скажешь.
Аноним 07/05/16 Суб 12:02:18  256421
>>256417
Зачем после каждого? Либо вызовы оборачивать в макрос, либо дёргать один раз в конце кадра, а там уже разбираться.
Аноним 07/05/16 Суб 12:06:04  256422
>>256409
>> glEnableVertexAttribArray(0);
вот на этом месте какую-то хуйню написал, вместо нуля, который, как я понимаю, ставится в соответствие vPosition шейдера
Аноним 07/05/16 Суб 12:15:46  256424
>>256421
Ну, потому что любой вызов может быть неуспешным. Если вызывать в конце, ты не разберешься потом, какой именно.

Я у себя запили макрос HANDLE_OPENGL_ERRORS, который втыкаю после каждой функции. Он мне в случае чего кидает исключение с именем файла, номером строки и ошибкой. Можны и вызовы в макросы завернуть, конечно.
Аноним 08/05/16 Вск 16:23:19  256777
Пиздякнул тут на досуге оберточку для себя. Может кому надо будет.
http://pastebin.com/xgCEtfLY
Аноним 09/05/16 Пнд 08:29:07  256906
>>256777
Сделал меня грустить. Я раньше С++ очень хорошо знал, но за 5 последних лет багфиксинга в больших корпорациях безнадежно отстал от жизни.
Аноним 13/05/16 Птн 06:19:13  257916
>>256777
Есть версия чуть проще.
http://pastebin.com/aBs2Xqat
Аноним 13/05/16 Птн 06:49:58  257919
>>257916
> strcpy( str, "GL_INVALID_FRAMEBUFFER_OPERATION" );
Норкоман?
Аноним 13/05/16 Птн 16:57:28  258066
>>257919
Не говоря уже о том, что все case повторяются, и их можно было препроцессором сгенерить, а не полагаться на копипаст.
Аноним 14/05/16 Суб 08:11:28  258158
Если я хочу воксели пердолить, то обязательно CUDA использовать, или можно без неё нормального фпс добиться?
Аноним 15/05/16 Вск 08:31:13  258375
Аноны, поясните, пожалуйста, мне вот за такую херню. Читаю сейчас тут супербиблию 7 опенгл . Там тип рассказывает, как биндить VAO, сначала биндит буфер, потом VAO и далее:
glVertexArrayBinding
glVertexArrayAttribFormat
glEnableVertexArrayAttrib

Нашел в другом месте, что в более ранних версиях делалось так:
glEnableVertexAttrib
glVertexAttribPointer

В чем профит первого способа, если он длиннее получается?
Аноним 16/05/16 Пнд 11:21:07  258652
(52Кб, 700x516)
объясните по-хардокору: для чего нужно это все? Это типа все на очень низком уровне? Если да, то зачем? Если нет, то зачем?
Аноним 16/05/16 Пнд 15:30:32  258746
>>258652
Это ВЕСЕЛО, слышал такое слово?
Аноним 16/05/16 Пнд 15:42:25  258749
>>258746
У меня тут от книг гл-овских пукан горит. Ох и весело же )
Аноним 17/05/16 Втр 10:18:22  258901
>>258746
недостаточно хардкорно.
Аноним 17/05/16 Втр 16:08:42  258975
>>244490
Как можно сравнивать разные API в каком-то там движке, где непонятно как используются функции этого самого API.

Ты уверен что разработчики запилили все как нужно? У тебя есть код? Есть четкое понимание как это делается на DirectX и OpenGL?
Аноним 17/05/16 Втр 16:49:27  258988
>>256777
Если я хочу просто вызвать glFunc, твой макрос думаешь заработает?

Хорошо. Это я тупой, ты собрался все вызовы запаковывать в gl(func, blabla);

А не проще было просто использовать дебажный opengl? https://www.opengl.org/sdk/tools/BuGLe/

К тому же, его можно самому написать!
Аноним 17/05/16 Втр 16:50:05  258989
>>256906
Ничего такого! Лямбды и автоподставление типов компилятором.
Аноним 18/05/16 Срд 18:41:53  259360
>>258988
Мне пока и так сойдет. А про дебажную версию я вообще не знал
Аноним 19/05/16 Чтв 17:29:42  259546
>>258375
> В чем профит первого способа, если он длиннее получается?
http://stackoverflow.com/a/21652955
Аноним 20/05/16 Птн 19:52:08  259797
Ананасы, подскажите, пожалуйста, почему не заводится. Рисую в image2D, но, первое - не биндится image2d (invalid operation выдает, но вот схуяли, даже в руководстве нет такой хуйни), а второе - в шейдере где-то косяк, но это, мне кажется, уже отсылка к первому.
http://pastebin.com/X46RMZ3c
Аноним 20/05/16 Птн 20:17:38  259807
>>259797
http://pastebin.com/7gJQp9Gd
Нашел косяки некоторые, исправил шейдер. Мне кажется, что CUDA здесь пизже въедет и без изъебов, но, в общем, теперь выдает
Compute shader(s) failed to link.
Compute link error: INVALID_OPERATION.
ERROR: error(#404) local work size runs out of limitaion
Аноним 20/05/16 Птн 20:26:47  259813
>>259807
Бля, ну и насрал же я тут. Извините. Вот эта залупа уже хочет работать, только вот почему все упирается в ограничение на 1024 элемента (для вычисления, естественно)? Его можно обойти, или для таких случаев использовать OpenCL? Только вот тут поебота - надо будет интероп писать.
http://pastebin.com/RjRg02YH
Аноним 20/05/16 Птн 23:31:59  259837
>>259813
NVIDIA не может в человеческий OpenСL, так что не поможет. Есть ограничение на количество потоков (по видимому, 1024, но можно как-то запросить). Делаешь цикл, чтобы каждый поток обрабатывал несколько элементов с шагом в 1024.
Аноним 21/05/16 Суб 06:58:44  259859
>>259837
У меня видюха от AMD, а на работе делаю софт под CUDA, вот же ирония вышла.
Аноним 21/05/16 Суб 17:43:57  260003
(5Кб, 251x201)
Я вот думаю на чем писать свою игру, с одной стороны я неплохо знаю opengl es но с другой стороны он – устаревшее говно и пора бы уже переходить на Vulkan, он гораздо производительней, но и гораздо сложнее и более низкоуровневый, думаете стоит заморочиться и сделать рендерер на вулкане?
Аноним 21/05/16 Суб 18:16:39  260014
>>260003
AMD'шники соснут, потому что с их дровишками OpenGL 4.5 доступен только для HD7000 серии и выше, а у Nvidia от 400 и далее. Вообще, бесит меня политика AMD в плане поддержки железа. Конченая компания.
Аноним 21/05/16 Суб 18:49:49  260019
>>260014
Да ладно, а вот у АМД вулкан с 7к у хуанга с 700, хотя в общем понятно, что это все нахер не нужно кроме как для AAA.
Аноним 21/05/16 Суб 18:54:17  260021
>>260014
HD 7000 в 2013 вышли. То, что старше, уже дрова же.
>>260003
Чтобы сделать движок на Вулкане быстрее AZDO OpenGL, нужно быть готовым маленькие куски переписывать под каждого вендора. Тык этому готов?
Аноним 21/05/16 Суб 19:03:57  260022
>>260021
>Чтобы сделать движок на Вулкане быстрее AZDO OpenGL, нужно быть готовым маленькие куски переписывать под каждого вендора.
С какого перепуга? Производительность вулкана выше уже по дефолту так как можно управлять синхронизацией и командными буфферами.
Аноним 21/05/16 Суб 19:10:11  260023
>>259813
Так, продолжаю запускать говнопримеры. В общем, настроил вычислительный шейдер, 1024 элемента, да и хуй бы с ним, тут у меня invalid enumeration валится при использовании glGetTexImage
http://pastebin.com/jYZjRXM5
Аноним 21/05/16 Суб 19:22:35  260027
>>260022
Дрова под OpenGL пилятся уже 20 лет. Ты правда думаешь, что сможешь их превзойти?
http://32ipi028l5q82yhj72224m8j.wpengine.netdna-cdn.com/wp-content/uploads/2016/03/Practical_DX12_Programming_Model_and_Hardware_Capabilities.pdf
Аноним 21/05/16 Суб 20:38:19  260041
>>260003
> с одной стороны я неплохо знаю opengl es но с другой стороны он – устаревшее говно и пора бы уже переходить на Vulkan
По моему ты просто даун.
Спецификация Вулкана вышла буквально несколько месяцев назад.
Чтобы что-то делать на Вулкане и чтобы это было доступно конечный продукт имеется ввиду как можно большему числу пользователей, пройдёт ещё несколько лет.
Аноним 23/05/16 Пнд 21:11:18  260475
>>195365 (OP)
Вкатываюсь с андроидодерьмом.
Аноним 23/05/16 Пнд 21:20:13  260477
>>260475
Так, полистал тред. Ничего для быстрого старта под ведроид не нашел. Поясните, с чего начать?
Аноним 23/05/16 Пнд 21:24:54  260481
>>258652
Не обращай внимания, проходи мимо. Тебе в соседний тред.
А здесь сидят те, кто хочет созидать своими руками, а не сосать хуй разработчиков юнити, причмокивая и сглатывая сперму.
Аноним 24/05/16 Втр 06:50:17  260552
>>260477
OpenGL ES
Аноним 24/05/16 Втр 14:33:12  260629
>>260477
OpenGL ES 3 Cookbook с нее можешь начать. Там все просто расписано и применимо к OpenGL настольному (хотя у кастрата есть модификаторы точности и прочая хуйня). А вот книгу с начала поста, которая идет офиицальным руководством OpenGL вообще не советую читать - просто каша. Супербиблия неплохая, но для начала тоже не самый хороший вариант, тем более что примеры, которые там приведены рассматриваются крайне скудно и больше времени уделяется на описание API как такового.
Аноним 30/05/16 Пнд 21:37:14  261799
Привет парни.

В каком порядке следует вызывать и почему функции:

glEnableVertexAttribArray
glVertexAttribPointer

?

Потому что работает и так и так, что странно
Аноним 30/05/16 Пнд 22:44:16  261807
>>261799
Ниважн там кароч праверка етих флагов када идет вызов draw т.е. перед драв калом вызывать над кароч.
Аноним 31/05/16 Втр 17:08:16  261948
>>261877
братишка я тебе звездочек принес:

*

ALT + 42
Аноним 31/05/16 Втр 17:09:32  261949
>>261948
а нихуя, даже так на этой параше не работает
Аноним 31/05/16 Втр 17:18:43  261958
>>261877
читни про VAO
Аноним 31/05/16 Втр 19:23:07  262044
>>261877
Ты можешь все индексы в один IBO запихнуть.
И в последнем параметре glDrawElements указывать смещение в байтах от начала буфера (IBO).

Даже можно все модели запихнуть в один VBO, но это потом когда разберёшься с этим.
И через http://docs.gl/gl3/glDrawElementsBaseVertex рисовать.
Аноним 09/06/16 Чтв 10:56:40  264100
(48Кб, 1227x819)
>>262044
Всегда возникает ошибка в glGenVertexArrays и glGenBuffers. В гугле написано только, что надо поставить glewExperimental = true, но это не помогает. Что здесь не так?
Аноним 09/06/16 Чтв 16:41:19  264141
(9Кб, 494x259)
>>264100
Попробуй сначала создавать окошко (наверное, где-то внутри в нём создаётся контекст).
Типо так.
Аноним 09/06/16 Чтв 20:18:24  264185
(59Кб, 1331x855)
>>264141
Сделал так, результат тот же. Судя по всему, я единственный, испытывающий эту проблему. В гугле ничего толкового не найти.
Аноним 09/06/16 Чтв 20:33:41  264194
>>264185
дрова поменяй
Аноним 09/06/16 Чтв 21:31:11  264210
>>264194
Установил последние, все по-прежнему.
Аноним 09/06/16 Чтв 21:46:53  264211
>>264185
Попробуй.
http://pastebin.com/raw/5M9Y4zQy

GL.h и GLU.h убери.
Вся эта ебалайка есть уже в glew
Аноним 09/06/16 Чтв 22:13:21  264213
>>264211
У меня "OpenGL 3.3 API is not available". Это не исправляется никак? У меня около года назад все работало нормально, с тех пор я не трогал опенгл, и все забыл. Взялся заново, а тут такая хуйня. Думал, может проблема с подключением библиотек или еще чего.
Аноним 09/06/16 Чтв 22:21:37  264214
(3Кб, 325x96)
(23Кб, 471x639)
>>264213
> Думал, может проблема с подключением библиотек или еще чего.
Проверь пути к либам, подключаются ли они и тд.

Алсо, также в папке у глева есть бинарники.
Запусти glewinfo. Глянь какой там вывод.
Аноним 09/06/16 Чтв 22:42:40  264217
(25Кб, 1407x671)
>>264214
С путями все нормально, иначе тогда ошибка была бы во время линковки. Бинарник glew32.dll (других же нет?) перекинут в директорию проекта. glewinfo вот.
Аноним 09/06/16 Чтв 22:46:10  264218
>>264217
Я все понял, у меня же дефолтный процессор интеловский, а не нвидиа. Переключил, теперь все работает. Спасибо за наводку.
Аноним 09/06/16 Чтв 22:49:49  264219
>>264217
Попробуй этот код:
http://pastebin.com/raw/qBydzL7v

Скорее всего ты проебался с
glfwMakeContextCurrent( win );
Я не видел его у тебя в коде выше.
Аноним 09/06/16 Чтв 23:38:45  264221
>>264219
Спасибо, но и без этого все тоже работает. Проблема была в графическом процессоре. Код, который у меня, теперь работает нормально.
Аноним 14/06/16 Втр 18:17:55  264900
Короче, решил тут я себе BuGLe подтянуть, вытянул сорцы, значит, вытянул с репа gtk2-devel (сьюзи у меня), и что бы вы думали - а хуй тебе, не гуй.
Короче, поебался я 5 минут тут, три семерки вся хуйня. Не стал искать правильный путь - поменял в SConscript'e gldb:
have_gtk = True
И идут нахуй, все работает сука.
Аноним 14/06/16 Втр 19:23:50  264923
Скажите, пожалуйста, что у меня не так в этом коде. Я уже заебался эти туториалы по 50 раз перечитывать, никак не могу понять, как работают эти злоебучие шейдеры. И туториалов много, так проблема, что везде написано по-разному, что вообще сбивает с толку. И вдобавок ни один из приведенных в них примерах не работает.
http://pastebin.com/EU7pQniF
Аноним 14/06/16 Втр 20:18:48  264932
(270Кб, 932x791)
(849Кб, 915x793)
(23Кб, 500x489)
Пытаюсь разобраться с наложением текстур, делая лабу для вуза.
Не могу понять как сделать так, чтобы одна текстура натягивалась на несколько полигонов сразу. Не повторялась, а именно чтобы например на квадрате 5x5 лежал один кусок текстуры.

Пока смог только ручками решить эту проблему при генерации прямоугольников с разбиением: для каждого полигона разбиения вычисляются нужные текстурные координаты. Функция на пике.

Но что с остальными примитивами делать я не знаю, их я строил функциями из glu glut, а не своими.
Аноним 14/06/16 Втр 22:53:26  264957
>>264923
Попробуй вот это:
http://pastebin.com/raw/zyyAsTNM

>>264932
> Не могу понять как сделать так, чтобы одна текстура натягивалась на несколько полигонов сразу. Не повторялась, а именно чтобы например на квадрате 5x5 лежал один кусок текстуры.
Передавай в шейдер сразу 2 текстуры.
И для какой-то из них ебашь текстурные координаты для твоего прямоугольника.
Ну или рисуй в том месте ещё полигоны и натягивай на них нужную текстуру.
Но тогда может возникнуть такая проблема:
https://upload.wikimedia.org/wikipedia/commons/5/5f/ZfightingCB.png
Аноним 15/06/16 Срд 00:44:31  264970
>>264932
> glVertex
> glNormal
Почему не залить всё в GPU и на мучить драйвер сто лет как устаревшим API?
Аноним 16/06/16 Чтв 15:34:03  265280
>>264970
дак енто ж ДЕЛФИ
я сразу чет не узрел, что это код гиар студио, там, поди и GL'а без костылей не поставить нормального.
Аноним 18/06/16 Суб 10:39:05  265718
(79Кб, 782x503)
Ребят, я ламер пока что, но забрел вот в такие дербри. Можно ли как то избегать переопределения объекта класса? Или это так и должно быть? Проблема в том, что определение попадает в цикл, где каждые 0.15 секунд инициализируются довольно крупные вещи, а это затратно для ресурсов. Где можно почитать на счет отрисовки множества объектов через классы?
Аноним 18/06/16 Суб 11:31:56  265732
>>265718
Ты постоянно буфер перезаписываешь что ли?! Я понять не могу вопроса
Аноним 18/06/16 Суб 12:09:44  265734
>>265732
приходится...тут display функция уходит в петлю, то есть каждый раз перезаписывается все, что внутри него. мне нужно отрисовать объект. Его конструкция описана в классе. как это сделать грамотно? получается, что каждый раз, когда перерисовывается экран создается заново(!) объект класса, ему снова присваиваются координаты. Так и должно быть или я просто дебил?
Аноним 18/06/16 Суб 12:22:47  265738
>>265734
У тебя данные BrushBox'а постоянные, или они меняются одинаково, или как они вообще сделаны, внутри то что?
Аноним 18/06/16 Суб 13:00:13  265749
(237Кб, 1920x977)
>>265738
выглядит это как то так.
Аноним 18/06/16 Суб 13:19:29  265751
>>265749
короче, раз уж у тебя спрайты там отрисовываются, то можно отрисовку спрайтов сделать одной пачкой (за один вызов gl), но при этом рисовать надо будет н устаревшими способами (glVertex, glTexCoord, glBegin/end). Почитай про буферы, там, в целом, все очень просто, да и быстрее работать будет, это однозначно.
Аноним 18/06/16 Суб 13:23:29  265753
>>265751
окей, спасибо. просто в туториалах обычно не показывают работу с классами ибо там рисуют 1 чайник или 1 кубик. ооп не раскрывается..)
Аноним 18/06/16 Суб 21:09:26  265823
Ищу разработчика движка на OpenGL
Если у кого есть желание оставьте контакты >>264565 (OP)
Аноним 18/06/16 Суб 22:54:47  265834
Кто и что думает на счет Vulkan? Какие у него перспективы?
Аноним 19/06/16 Вск 16:12:28  265971
>>265834
Хорошие перспективы.
Через несколько лет увидим результаты.
Аноним 19/06/16 Вск 19:26:22  266018
>>265834
OpenGL 2.0 для мобилок, веба и индиговна будет жить еще очень долго. Вулкан станет основным API для ААА, если MS будет продолжать тупить с UWP.
Аноним 19/06/16 Вск 23:15:06  266072
>>266018
Просто я запариваюсь над тем, что начинать учить, чтоб не зря было. Пока что овладел нормально только плюсами и парой тройкой библиотек к нему. Очень хотел юзать opengl, а тут вот говорят лучше вещь сделали.
Аноним 20/06/16 Пнд 08:38:31  266105
>>266072
Вулкан намного сложнее GL, но в целом он намного более продвинут по архитектуре. На нем приятнее писать.
Кстати, палю годноту по вулкану: https://github.com/SaschaWillems/Vulkan
Аноним 20/06/16 Пнд 11:22:41  266131
>>266105
А за это большое спасибо. Разумеется с драйверами 340 из репозитория дебиана оно не встанет? там вроде от 368 версии на картах с opengl 4.5 поддержкой. Это крашит систему. Кто пытался поставить под linux?
Аноним 30/06/16 Чтв 10:24:22  270597
Посоны, объясните, пожалуйста, в чем разница использования
>> glClearColor(...)
>> glClear(GL_COLOR_BUFFER_BIT)
и
>> GLfloat color[] = { ... }
>> glClearBufferfv(GL_COLOR, color)
Аноним 03/07/16 Вск 12:13:33  272208
Так, ананасы, вопрос следующий:
Есть, значит, у меня моделька с кучкой материалов (.obj и .mtl файлы, короче), и тут я решил их по-маленьку зарендерить, но вот в чем дело, у GLSL на шейдер ограничение в 16 текстур (вроде и до 32 можно), а вот стандарт .mtl, который вейвфронт замутили, подразумевает наличие до 9 текстур от просто изображения предмета до каких-то залуп (алсо, забавно, что нет маски нормалей, а бампинг есть), так вот. Каким образом мне лучше сделать - мусор повыкидывать (оставить только основную текстуру, бампинга, отражения, прозрачности) или разбить объект на куски (под каждый отдельный материал) и затем рендерить его в несколько проходов (но это получается сильно затратнее), может есть что-то по-лучше, да и вообще нахуя мне столько текстур?
Аноним 04/07/16 Пнд 08:53:03  272522
>>272208
Загрузи все изображения в пространство одной текстуры и сдвинь текстурные координаты у вершин соответственно.
Аноним 04/07/16 Пнд 10:52:40  272564
>>272522
Спасибо.
А что делать для видеокарт, у которых размер текстуры маленький (2к х 2к, к примеру, для модели-то ведь точно хватит, а вот для какого-то ландшафта, например, окажется маловато (если тужа еще запихивать карту бампинга, нормалей, диффузии и пр.)). Херить качество?
Аноним 04/07/16 Пнд 12:39:45  272597
>>272564
https://www.opengl.org/wiki/Array_Texture
Аноним 04/07/16 Пнд 12:47:38  272601
>>272564
> если тужа еще запихивать карту бампинга, нормалей, диффузии и пр.
куда ты их запихивать собрался, госпади
Я НЕ КАРТА ВЫСОТ Я ТЕКСТУРКА
НЕ ЗАПИХИВАЙ МЕНЯ, ПОДУМОЙ
Аноним 04/07/16 Пнд 13:52:44  272624
>>272601
Ну ведь бампинг на физическую высоту (имею в виду объекта) не влияет
>>272597
Спасибо, тоже о них подумал, но где-то кто-то пиздякнул мне на ухо, что текстуры массива должны быть одного размера, а оказывается нет.

Кстати, тут еще один вопрос. У меня следующий кусок в шейдере:
http://pastebin.com/MeHspyQ2
Размер структуры равен 76 байт (если посчитать), но gl_uniform_block_data_size показывает, что размер униформа равен 636 байт. Я, так понимаю, 4 байта между структурами добавляется длы 16-байтного выравнивания данных?
Аноним 04/07/16 Пнд 14:50:12  272652
>>272624
> Ну ведь бампинг на физическую высоту (имею в виду объекта) не влияет
при чем тут это
ландскейп совершенно не так делается, ландскейпу свой шейдер пишешь
карта высот я имел в виду топология ландшафта, разумеется, она хайрезная, а эти мелкие текстурки что на траве, земле, песке и прочем их по 512 делай если печешься за производительность на древневидюхах
или в несколько проходов можно рендерить (наверное, я сам не умею). я про то что там процедурный подход нужен
Аноним 04/07/16 Пнд 17:50:24  272711
>>272624
> Размер структуры равен 76 байт (если посчитать), но gl_uniform_block_data_size показывает, что размер униформа равен 636 байт. Я, так понимаю, 4 байта между структурами добавляется длы 16-байтного выравнивания данных?
http://steps3d.narod.ru/tutorials/ubo-tutorial.html
Аноним 06/07/16 Срд 18:23:22  273389
>>272711
Спасибо. В общем, на верочку, решил прочитать индексы и смещения, и, похоже делаю это вообще неправильно:
http://pastebin.com/WZMKJq0j
Вывод следующий:
>> u_materials: 4294967295 offset 0
>> u_materials.materials: 4294967295 offset 0
>> u_materials.materials[0]: 4294967295 offset 0
>> u_materials.materials.ambientTexture: 4294967295 offset 0
>> u_materials.materials[0].ambientTexture: 4294967295 offset 0
>> MaterialsBlock.materials: 4294967295 offset 0
>> MaterialsBlock.materials[0]: 4294967295 offset 0
>> MaterialsBlock.materials.ambientTexture: 4294967295 offset 0
>> MaterialsBlock.materials[0].ambientTexture: 4294967295 offset 0
>> materials: 4294967295 offset 0
>> materials[0]: 4294967295 offset 0
>> materials.ambientTexture: 4294967295 offset 0
>> materials[0].ambientTexture: 4294967295 offset 0
>> Materials block size 636
Нихуя не нашел, короче говоря, но зато размер блока выводит, сука. Я вот вкурить не могу, как он их ищет то блять. По имени переменной обратился, по имени блока тоже, даже блять без имени, но все тщетно.
Аноним 07/07/16 Чтв 17:08:34  273721
(7Кб, 802x632)
(26Кб, 802x632)
>>273389
Так, короче, хуй с этими поисками размещений, по std140 разобрался, теперь это не нужно (а хотелось бы понять, как делать-то). Но, в общем, мне не дает покоя конченый шейдер, а дело вот в чем, имею вот такой шейдер (делает чуть более, чем нихуя - применяет краску и все):
http://pastebin.com/g8TEaFfx (выводит пикрелейтед 1)
Однако, стоит мне заменить тело main'a на вот это:
> MaterialStruct m = u_materials.materials[vs_out.material];
> fs_color = vec4(m.diffuseColor.rgb (vs_out.normalCoords.z + 1) 2, 1);
Коричневый цвет сразу уебывает в звенящие дали, оставляя цвет только от первого материала. Видимо, компилятор сделал какую-то охуительную оптимизацию и все накрылось пиздой. Как сделать правильно?

Аноним 07/07/16 Чтв 17:09:28  273722
>>273721
Быстрофикс: звездочки перед и после
>> (vs_out.normalCoords.z + 1)
вот этой хуйни
Аноним 09/07/16 Суб 20:12:39  274494
>>273721
А зачем ты так делаешь?
Похоже на какой-то перевод из одного пространства в другое.
Аноним 10/07/16 Вск 04:31:42  274583
>>274494
в normalCoords я пока что просто пробрасываю значение gl_Position, а вообще просто решил подзатенить чутка, чтобы трехмерно выглядело.
Короче, один тип подсказал, что нужен квалификатор flat для переменной материала, чтобы он не интерполировался, вот теперь заработало, да.
Аноним 12/07/16 Втр 13:34:43  276449
(30Кб, 802x632)
>>274583
Делаю шейдеры по книжке одной, охуительно так-то.
Аноним 12/07/16 Втр 13:39:27  276453
>>276449
Зачем ты нацепил глянец туда, где должна быть матовая поверхность?
Аноним 12/07/16 Втр 13:40:25  276454
(513Кб, 1242x936)
>>276453
Аноним 12/07/16 Втр 13:53:19  276461
>>276453
Это не моя модель, я скачал и проверяю работу.
Аноним 03/08/16 Срд 18:28:26  288377
Я просто хотел сказать, что меня ЗАЕБАЛИ шейдеры и GLSL.
Ебучий матан, ебучая тригонометрия, ебучие матрицы, всё руками делать, охуевать трижды, гроб, гроб, кладбище, пидоры, всё.
Спасибо за внимание.
Аноним 03/08/16 Срд 22:33:35  288527
(36Кб, 620x520)
>>288377
Щито поделать.
Аноним 04/08/16 Чтв 02:40:26  288619
>>288377
а по моему это круто, хоть где то есть толк моим знаниям лол
Аноним 04/08/16 Чтв 03:43:41  288622
в glsl во фрагментном шейдере есть возможность сохранить данные в промежуточном буфере
ну допустим выполнили какие то операции на данном фрагменте, установили для него цвет сохранили какие то данные в переменных -> перешли к следующему фрагменту, взяли прошлые данные опять выполнили действия опять сохранили данные -> перешли к следующему фрагменту итд

Ну или на крайний случай параллельный буфер, допустим выполнили операции установили цвет в gl_FragColor, установили цвет в буфере -> перешли к следующему фрагменту взяли цвет из буфера прошлого фрагмента, выполнили операции, установили цвет в gl_FragColor, установили цвет в буфере -> перешли к следующему
Аноним 04/08/16 Чтв 12:23:23  288710
>>288622
Это вопрос или утверждение?
Аноним 04/08/16 Чтв 15:18:09  288783
>>288710
вопрос как хронить промежуточные данные типа фрагмент -> фрагмент
Аноним 04/08/16 Чтв 15:58:14  288806
>>288783
есть атомики, если тебе нужно в одном проходе хранить данные. Можно зарендерить во фреймбуфер и потом его ебать следующим проходом (так делают тени, и карты отражения, в частности)
Аноним 04/08/16 Чтв 20:01:49  288894
(338Кб, 256x256)
>>288806
ладно иначе сформулирую вопрос, с этим у меня проблема
на пике можно увидеть РАЗМАЗЫВАНИЕ, и вот я ни как не пойму как такое сделать в glsl, ну те если бы изображение было бы массивом то все просто, но вот в glsl же иначе
Аноним 04/08/16 Чтв 20:08:45  288896
(16Кб, 496x501)
>>288894
> РАЗМАЗЫВАНИЕ
Ты это имеешь ввиду?
Аноним 04/08/16 Чтв 20:11:24  288897
>>288896
ага, мне же нужно обращаться к прошлому измененному значению пикселя на позиции выше
Аноним 04/08/16 Чтв 22:10:42  288923
>>288897
Не нужно. Это совсем не так делается. Но тебе ещё рано задумываться об этом, раз ты такую простейшую трансформацию осилить не можешь. Рекомендую изучить базу glsl для начала.
Аноним 04/08/16 Чтв 22:29:40  288929
>>288923
Тут дело не в glsl, а в алгоритме.

>>288897
То есть ты хочешь получить такие же тени как и на гифке?
Дык можно и проще же сделать.
https://www.youtube.com/watch?v=fsbECSpwtig
Аноним 04/08/16 Чтв 23:09:15  288935
(561Кб, 1325x3000)
(483Кб, 2300x809)
>>288923
новичок да, я в общем то и изучаю glsl, а лучший способ учится это же писать код
и так то вот что у меня уже есть
https://www.youtube.com/watch?v=wbIslzIHtss
https://www.youtube.com/watch?v=s_E57cr86YQ

вот только информация на на тему glsl страшно хаотично разбросана по сети и это вызывает некоторые трудности в обучении
Аноним 04/08/16 Чтв 23:12:42  288936
>>288929
о добра тебе
Аноним 05/08/16 Птн 01:14:28  288972
>>288935
Что пилишь?
Аноним 05/08/16 Птн 01:20:54  288975
>>288972
В идеале должна получиться пиксель арт игрушка с нетривиальным сюжетом в нуаркиберпанк bladerunner сеттинге, с боевкой частично как в child of light, но пока графена нет тк художник учится, а я вот на системой света работаю.
Аноним 05/08/16 Птн 01:21:22  288976
>>288975
все свое, физика, рендер, итд
Аноним 05/08/16 Птн 01:45:49  288987
>>195968
Веб воркеры работают параллельно. Ты просто отсталый.
Аноним 05/08/16 Птн 02:07:10  288994
>>288929
этот метод не позоволит нормально использовать карту света, да и тени там не очень они общие для всех источников света 0:53
а я хочу как раз имея на входе карту света, для каждого исочника света ее по своему модифицировать (добавляя тень) и уже потом просто рендерить сам свет
так даже дешевле будет чем то что на видео, но вот я никак не пойму как это размазывание реализовать
Аноним 05/08/16 Птн 02:52:57  289004
>>288994
Бладж:
https://github.com/mattdesl/lwjgl-basics/wiki/2D-Pixel-Perfect-Shadows
http://www.gmlscripts.com/forums/viewtopic.php?id=1657
Аноним 05/08/16 Птн 02:54:19  289005
(1680Кб, 500x288)
>>289004
премного благодарен
Аноним 05/08/16 Птн 15:10:37  289154
(25Кб, 415x155)
>>289005
черд
вот этого я и хотел избежать - фором по всей высоте экрана проходить в каждом фргаменте, но видимо не получится усидеть на двух стульях, и либо дешево либо красиво
Аноним 05/08/16 Птн 15:12:40  289156
>>288897
Матричные фильтры читай - самый простейший алгоритм
Аноним 05/08/16 Птн 15:21:33  289163
(641Кб, 500x291)
>>289156
окей, спасибо за наводку
GlowStick !dWRwJsmqCE 08/08/16 Пнд 19:30:32  290573
(51Кб, 816x639)
(74Кб, 1012x609)
(7Кб, 784x595)
Сап, велосипедисты.
Кто-нибудь знает, в чём может быть проблема?
Первый пик - правильный вид игры.
Второй и третий пики - так, как игра выглядит у других людей.

Сама игра - https://yadi.sk/d/tg9DSCRGu3JfW

Механизм, который передаёт цвет в шейдер:
coin_ptr->get_shader().activate();
coin_ptr->get_shader().set_uniform_vec3("background", glm::rgbColor(glm::vec3(std::fmod((coin_ptr->get_scale() × 360.0f / 0.55f) + coin_ptr->get_color_shift(), 360), 0.45f + coin_ptr->get_scale(), 1)));

Этот код раскрывается вот так:
glUseProgram(this->program_id);
glUniform3fv(glGetUniformLocation(this->program_id, "background"), 1, glm::value_ptr(glm::rgbColor(glm::vec3(std::fmod((coin_ptr->get_scale() × 360.0f / 0.55f) + coin_ptr->get_color_shift(), 360), 0.45f + coin_ptr->get_scale(), 1))));

Может, шейдеры v120 не у всех работают? На легаси нужно переписывать?

Помогите.
Аноним 08/08/16 Пнд 20:12:14  290584
>>290573
Начни с проверки того, что у тебя окно с правильной глубиной цвета создаётся. OpenGL'у же пофиг, он будет пытаться хоть что-то отобразить в любом случае.
Аноним 08/08/16 Пнд 23:03:45  290626
>>290573
Сам код шейдеров давай да и зачем юзать? 120?
Бери хотя бы 330
Аноним 08/08/16 Пнд 23:29:45  290630
Алсо, ананасы.
Когда делать перекат?
Как достигнем 500 постов или подождать пока Абу восстановит бамплимит?
Аноним 09/08/16 Втр 00:17:35  290637
>>290630
Подожди пока начнет тонуть, очевидно же.
GlowStick !dWRwJsmqCE 09/08/16 Втр 13:16:05  290765
>>290626
Если 120 не работают, то какой смысл использовать 330? Вот код шейдеров:

fbo vertex - http://pastebin.com/i36hQ03F
fbo fragment - http://pastebin.com/whC9X3Fj

draw vertex - http://pastebin.com/GU5dDZrA
draw fragment - http://pastebin.com/9AAVZv7J

fbo отвечает за fbo, draw отвечает за отрисовку треугольников.


>>290584
SDL_GL_SetAttribute(SDL_GL_RED_SIZE, 5);
SDL_GL_SetAttribute(SDL_GL_GREEN_SIZE, 6);
SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE, 5);

Добавил вот эти строчки - треугольники всё равно белые.
Аноним 09/08/16 Втр 13:19:15  290771
>>290765
> Если 120 не работают
Ну это же совсем древние видеокарты десятилетней давности.

Аноним 09/08/16 Втр 13:23:36  290777
>>290771
Мне не трудно написать 2 шейдера под 120, если это только расширит аудиторию.
GlowStick !dWRwJsmqCE 09/08/16 Втр 13:43:03  290787
Проблема решена. Мой драйвер устанавливал неустановленные юниформы в ноль, а драйверы у других людей входили в UB. Теперь всё работает.
Аноним 09/08/16 Втр 13:45:04  290788
>>290787
А зачем каждый раз вычислять адрес юниформа в шейдере?
Почему один раз не делать и хранить где-то хендл на это?
GlowStick !dWRwJsmqCE 09/08/16 Втр 13:53:10  290790
>>290788
Это игра на twg, тут очень много мест, которые можно было бы оптимизировать. Например, добавить кеш для шейдеров, чтобы не загружать один и тот же шейдер несколько раз. В серьёзном проекте я бы это реализовал, но тут не вижу особого смысла.
Аноним 09/08/16 Втр 14:00:38  290793
>>290790
> Например, добавить кеш для шейдеров, чтобы не загружать один и тот же шейдер несколько раз
В смысле?
Не биндить его дважды?
GlowStick !dWRwJsmqCE 09/08/16 Втр 14:03:10  290795
>>290793
Для каждого треугольинка создаётся свой шейдер.
Аноним 09/08/16 Втр 14:04:28  290796
(20Кб, 510x546)
>>290795
Штоу?
GlowStick !dWRwJsmqCE 09/08/16 Втр 14:14:11  290800
>>290796
У каждого объекта dream::engine::entity есть свой dream::gl::vertex_buffer_object, у которого есть dream::gl::shader. Все треугольники - энтити.
GlowStick !dWRwJsmqCE 09/08/16 Втр 14:14:54  290801
>>290800
> vertex_array_object
Фастфикс.

Я осознаю, что это неправильно и нуждается в оптимизации.
Аноним 09/08/16 Втр 14:19:41  290802
(4Кб, 432x128)
>>290800
>>290801
> Я осознаю, что это неправильно и нуждается в оптимизации.
Это не просто не правильно.
Это ужасно.

Лучше пусть каждать энтить хранит позицию в игровом мире, цвет, ещё какие-то настройки.
Перед отрисовкой отсекай те треугольники, который за экраном.
Получится что-то вроде пикрелейтеда.
GlowStick !dWRwJsmqCE 09/08/16 Втр 14:21:27  290803
>>290802
> Перед отрисовкой отсекай те треугольники, который за экраном.
У меня таких нет.

Да и оптимизировать я смогу. Но когда нужно торопиться - немного не до этого.
Аноним 10/08/16 Срд 15:48:14  291376
Что будет, если использовать гейзерную программу и установить в ней значение одной из юниформ, использовать другую шейдерную программу, а потом опять установить первую программу?
Сохранится ли значение юниформы?
Аноним 10/08/16 Срд 15:50:17  291377
>>291376
Должны.
У меня так текстуры работают.
Аноним 11/08/16 Чтв 08:18:39  291629
>>291376
2.11.7 Uniform Variables

... Uniforms are program object-specific state. They retain their values once loaded, and their values are restored whenever a program object is used, as long as the program object has not been re-linked. ...
Аноним 14/08/16 Вск 15:11:52  293666
Двощик, почему у меня не получается передать две текстуры в шейдер?
Делаю все по науке - бинжу тектсуры на разные юниты, передаю номера юнитов в шейдер. При отрисовке в обоих семплерах текстура из нулевого юнита.
Везде написано, что все делается именно так, но у меня не робит. хотя я уверен, что там где-то просто косяк, но я не вижу, где.

c++ код (проблемное место в Matrial8::bindTo())
http://pastebin.com/JwkqUD3d

Фрагментный шейдер
http://pastebin.com/KC6Jcci5
Аноним 14/08/16 Вск 15:26:39  293677
>>293666
в uniform пердавай не GL_TEXTURE0 и т.д., а просто 0, 1 и т.д.
glUniform1i(location, 0); - биндит текстуру 0
Аноним 14/08/16 Вск 15:43:36  293679
>>293677
Благодарствую
Аноним 19/08/16 Птн 04:01:38  295184
>>293679
а если MRT, то еще glActiveTexture(GL_TEXTURE<номер);
Аноним 19/08/16 Птн 07:10:22  295196
Имеется ogl ver < 2, черно-белая текстура и цвета.
Нужно рендерить так, чтобы темные участки текстуры смешивались с цветом больше, чем светлые.
Аноним 19/08/16 Птн 07:35:57  295199
>>295196
Короч, нужно что-то типа Resultcolor = (1 - Texturecolor) x Drawcolor
Все осложняется тем, что дело происходит на lwjgl.
Аноним 19/08/16 Птн 07:37:06  295200
>>295199
Хотя не, тогда светлые места темными станут.
Аноним 19/08/16 Птн 16:30:31  295251
>>295199
ogl < 2 это типо без шейдеров?
Проблема же очевидно банальным шейдером решается
Аноним 19/08/16 Птн 17:59:40  295257
>>295251
Шейдеры как раз появились в gl2
Аноним 19/08/16 Птн 19:47:54  295273
(65Кб, 768x384)
Сталкивался кто с проблемой отрисовки нескольких сотен двигающихся спрайтов с анимациями(мобы типа)? Я вот погуглил, говорят нужно через один динамический VBO рендерить за один glDrawElements. Пока думаю сделать два буфера: геометрии и текстурных координат, их перестраивать через glBufferSubData. Может есть какой оптимальный путь?
Алсо треугольники или квады? Говорят лучше треугольники, типа карты под них заточены.
очевидный ньюфаг
Аноним 20/08/16 Суб 11:03:38  295336
>>295257
Были в 1.1 в виде расширений же.
Аноним 20/08/16 Суб 17:13:17  295387
>>295273
1) Делаешь один спрайтшит на всех и аплоадишь его в одну текстуру.
2) Каждый объект представляется координатами на экране и индексом спрайта. Фигаришь их в буфер с параметром GL_DYNAMIC_DRAW.
3) В геометрическом шейдере генеришь квады и готовые текстурные координаты, простые как амеба вершинный и фрагментный шейдеры кушают и высирают на экран. И все это за один drawcall.
4) ...
5) ПРОФИТ!!!!!

Пояснение: квады начиная с OpenGL 3.1 выпилены нахуй, делай TRIANGLE_STRIPE или TRIANGLE_FAN, про квады забудь.
Аноним 20/08/16 Суб 19:22:27  295418
(1Кб, 180x80)
Аноны, поясните мне, пожалуйста.
Вот есть OpenGL ES 2.0, там, как и положено, пишется версия шейдера
#version 120 и т.п.
А вот и пришел GL ES 3.0, а там уже блять другое
#version 300 es
Они что, опидорели там в своем комитете?!
Аноним 20/08/16 Суб 19:54:33  295421
>>295418
Неосилятор не нужен, иди в юнити-тред или уеч-тред.
120 == гавно мамонта
Аноним 21/08/16 Вск 07:22:56  295476
>>295421
Почему они не сделали всем суффикс es, а у 2.0 оставили индексы первый шейдеров?
Аноним 21/08/16 Вск 09:20:38  295481
>>295418
Потому, что начиная с GL ES 3.0 используются специальные версии GLSL. Почему? Потому, что разные платформы.
Аноним 21/08/16 Вск 20:23:12  295696
>>195365 (OP)
Аноним 22/08/16 Пнд 13:48:53  295906
>>295696
Думаешь пора перекатываться?
Аноним 22/08/16 Пнд 16:50:37  295939
(9Кб, 320x240)
Ананасы, раздумывал тут на тему приемлемого освещения (для мобилок, естественно), хотелось бы получить что-то похожее на террарию, но там, как мне кажется, используется многопроходовый матричный фильтр с проверкой текущей ячейки на прозрачность для света (для прозрачных нулевой коэффициент затухания, для непрозрачных - другой), в общем, получается-то в целом довольно неплохо при 8+ проходах и при этом работа не зависит от количества источников света (натыкал точек и готово), напихал следующее:
http://pastebin.com/d0FUUfQ7
Получается что-то вроде пикрелейтеда, но проблема, в общем-то понятна - матричный фильтр и большие затраты, у меня это будет выдавать нормальный FPS даже при максимальном разрешении текстур, однако на мобиле железо сосущее, как известно, и будут некоторые веселости с залипаниями и торможениями.

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

Еще, как вариант, мне кажется, можно попробовать тепловые карты и этот вариант я тоже пробовал, но регулировать яркость освещения я пока не допер как. Ну и, естественно, чтобы свет появлялся вовремя нужно рендерить за пределами области видимости причем неплохо так, зато ресурсов почти не отжирает (почти тот же матричный фильтр, только за один проход).
Может подскажете еще варианты какие? Хотел бы, конечно, тепловые карты задействовать, но не допер, как считать передачу света (если его заменить теплом), то есть с какими поэффициентами и как уничтожение света, чтобы не залило всю карту.
Аноним 23/08/16 Втр 16:51:39  296202
(6085Кб, 1920x1080)
>>295939
Короче, подумтил тут шейдер для flood-fill'a, как в террарии используется, похоже (но там он программный был, насколько мне помнится), получается гораздо приятнее, чем на основе передачи тепла, только побочный продукт - ромбик очень уж не нравится
Аноним 25/08/16 Чтв 22:23:20  296790
>>295939
> (для мобилок, естественно)
Ну раз мобилки, то может не стоит городить что-то уж слишком сложное?
Может для начала попробовать простые техники?
Аноним 26/08/16 Птн 19:34:12  297006
>>296790
Сначала тоже так подумал, а потом решил разные способы попытать в поисках самого привлекательного, все равно сроков не ставил, у меня это как своеобразная развлекуха получается, не просто же целый день сидеть без дела
Аноним 31/08/16 Срд 09:57:11  297763
Нужно написать простенький редактор уровней для своего игрового движка на OpenGL + Physx. Для него нужен ГУИ фреймфорк. Подумав, взял wxWidgets. Мотивация - не такой тяжелый, как QT, не требует шаманства со вспециальными аддонами для студии, сразу есть компонент для отображения OpenGL контента.

Все правильно сделал?
Аноним 31/08/16 Срд 16:21:21  297811
Пизданутый мобильный геймдев, меня он просто колотит блять. Под GLES 2.0 нет функции texture, а вместо нее старая-престарая texture2D, которую, сука, в 3.0 заменили на универсальную texture, а старую просто выкинули нахуй. У меня от них DIRECTX!
Аноним 31/08/16 Срд 16:49:42  297816
>>297811
Жри говно молча
Аноним 31/08/16 Срд 17:10:57  297822
(39Кб, 604x587)
>>297816
слушаюсь
Supreme !!NXKHuroIdQ 31/08/16 Срд 22:35:11  297856
(12Кб, 325x386)
Поясните за такую штуку: у некоторых этот код рисует круги(как и нужно), а у некоторых рисуются квадраты. Причём, у меня в одном приложении этот код рисует круги, а в другом - квадраты. А у других рисуются квадраты и в том приложении, в котором у меня рисуются круги.
Использую LWJGL
Аноним 31/08/16 Срд 22:41:46  297862
>>297856
В гугле забанили? http://stackoverflow.com/questions/1513811/getting-smooth-big-points-in-opengl
Трипкод и имя убери
Аноним 31/08/16 Срд 22:44:25  297864
>>297856
Вангую поинтсайз(который кстати КВАДРАТ) много больше радиуса выводимой окружности. Получается маленькая окружность выведеная вершинами с очень большими квадратами, которые толпятся все в точке +-2 пикселя.
Почему везде по разному - хз.
Аноним 31/08/16 Срд 22:49:12  297866
>>297864
Поинтсайз динамичный и в любом случае у некоторых точки квадратные
>>297862
Спасибо
Аноним 01/09/16 Чтв 18:43:16  298130
Короче, ананасы, вопрос такой.
Допустим у меня есть точка, я нормирую ее координаты (от -1 до 1) в пределах некоторого вида, для этого вида у меня есть совершенно конкретные значения ширины и высота области видимости в пикселах. Так вот, допустим, ширина области будет 200, а позиция х точки 0.01375, это получается ее координата (в пикселах) теперь окажется равной 101.375, что нецелое число, естественно, так вот, каким образом OpenGL определит ее позицию на экране, он вернет 101 или 102, то есть мне важно не само число, а способ его получения.
Аноним 01/09/16 Чтв 19:12:11  298131
>>298130
OpenGL вычисляет позиции пикселей по их центру. То есть он определит позицию как пиксел, центр которого ближе всего к 101.375, что есть 101.5
Аноним 01/09/16 Чтв 19:28:25  298134
>>298131
Opengl ничего не вычисляет. Это как хтмл просто спецификация, а каждый браузер сам определяет как рисовать
Аноним 01/09/16 Чтв 21:05:30  298160
>>298134
Вот спецификация и говорит, как вычислять.
Аноним 01/09/16 Чтв 22:18:53  298172
>>298134
Не похуй ли? Всё равно все существующие реализации принимают за позицию пикселя его центр.
Аноним 02/09/16 Птн 03:31:57  298217
>>298131
Спасибо
Аноним 02/09/16 Птн 04:34:31  298221
Если я работаю в полноценном движке готовом (типа UE4), мне нужно шарить ОупенДжиЭл?

МимоБогГеймДизайна
Аноним 02/09/16 Птн 04:39:57  298222
>>298221
дай человеку движок и он сделает игру
научи человека писать движок и он сделает нихуя
Аноним 03/09/16 Суб 17:20:29  298411
>>195365 (OP)
Аноним 06/09/16 Втр 09:15:52  298833
(20Кб, 140x140)
>glDrawElementsInstancedBaseVertexBaseInstance
Аноним 09/09/16 Птн 22:13:45  299409
Серьёзное дерьмо.
http://www.adriancourreges.com/blog/2016/09/09/doom-2016-graphics-study/
Аноним 12/09/16 Пнд 10:11:18  299643
>>299409
Причем тут OpenGL?
Аноним 12/09/16 Пнд 12:45:42  299673
>>299643
При том, что новый Дум на ОпенГЛ.
Да и вообще интересно же.
Аноним 12/09/16 Пнд 13:21:55  299678
>>299673
На ДХ.
Аноним 12/09/16 Пнд 13:43:17  299685
(98Кб, 1280x720)
(147Кб, 1280x720)
>>299678
Выбор из Вулкана и ГЛ.
Аноним 12/09/16 Пнд 14:00:06  299694
>>299685
Какая разница, если в статье ни строчки кода.
Аноним 12/09/16 Пнд 14:11:28  299697
(52Кб, 650x650)
>>299694
Аноним 12/09/16 Пнд 16:42:43  299742
>>299694
Хабрахабр, плес
Аноним 13/09/16 Втр 17:50:47  300033
Пропускать varying через геометри шейдер обязательно? Или можно как-то пробросить из вертекс сразу в фрагмент чтобы не писать все эти лишние ин/аут?
Аноним 13/09/16 Втр 18:08:36  300035
>>300033
Ну если геометрический шейдер участвует, то да надо.
Аноним 13/09/16 Втр 19:05:08  300038
>>299409
Как-то про ДесуСекс у этого чела поподробнее расписано, и про ГТА в принципе тоже. Видимо поторопился он малость.

А есть еще подобные разборки кадров?
Аноним 13/09/16 Втр 19:26:08  300042
>>300035
Ок, а есть способ сохранить имена переменных? Ну чтобы можно было линковать уже скомпилированные шейдеры для вариантов с геометри или без.
Аноним 13/09/16 Втр 21:52:29  300055
>>300042
В новых версиях ГЛа можно хранить уже слинкованные шейдеры в бинарном виде.
http://docs.gl/gl4/glShaderBinary

И вроде как можно отцеплять шейдер от программы и прицеплять другой шейдер.


> Ок, а есть способ сохранить имена переменных?
Можешь также ещё попробовать юзать uniform buffer object
Или заранее задавать индекс переменной прямо в тексте шейдера.
Аноним 13/09/16 Втр 22:59:34  300064
>>300055
Я имею в виду атрибуты вершин. Вот пример

-- vertex
out vec3 n;

-- fragment
in vec3 n;

если сюда вставить геометрический шейдер, как пропихнуть n через него? Это придется менять имена всех переменных в фрагментном шейдере.

-- vertex
out vec3 n;

--geometry
in vec3 n[];
out vec3 n_;

-- fragment
in vec3 n_
;

Короче, видимо, придется пилить дефайны и компилировать с ними разные версии шейдеров для программ с геметрическим шейдером и без.
Аноним 13/09/16 Втр 23:43:11  300071
>>300064
Попробуй
https://www.opengl.org/wiki/Interface_Block_%28GLSL%29#Input_and_output
http://www.geeks3d.com/20111117/simple-introduction-to-geometry-shader-in-glsl-part-2/
Аноним 13/09/16 Втр 23:46:53  300072
>>299742
>>299409
А вот и перевод
https://habrahabr.ru/post/309844/
Аноним 14/09/16 Срд 20:13:34  300284
(46Кб, 960x540)
>>300071
Сделал связывание через layout (location).

Блять, решил выебнутся - сделать вытягивание шэдоу волюма в геометри шейдере, оказалось GL_EXT_gpu_shader4 (нижняя граница совместимости для которой я пишу) не поддерживает GS инстансинг (invocations). За один проход стрипами не вытянишь силуэтные грани. Сука.
Аноним 14/09/16 Срд 21:20:12  300301
>>300284
Спизди из третьего дума, который идет даже на днищекартах.
Аноним 14/09/16 Срд 21:54:50  300305
>>300301
Там это через стенсил работает.
Аноним 14/09/16 Срд 22:13:02  300309
>>300305
Это везде через стенсил работает. Фишка в том чтобы генерить сам волюм на гпу. >>300284 кун

Аноним 15/09/16 Чтв 23:11:13  300475
(438Кб, 651x499)
>>300284
Я спиздел. Всё делается за 1 проход. Замутил Carmack's Reverse на z-fail. Пришлось правда перенести все мешы на TRIANGLES_ADJACENCY.
Аноним 15/09/16 Чтв 23:13:27  300476
>>300475
А теперь покажи тень от самолета на светло-сером однотонном shadow receiver.
Аноним 17/09/16 Суб 10:55:29  300775
(105Кб, 636x286)
Аноны, ответьте пожалуйста на один вопрос. Имеется у меня модель, полученная из OBJ-файла, соотвественно там поверхности состоят из четырехуголников, которые я рендерю веером и использую буфер индексов, чтобы было проще с этим работать. Так вот, теперь для наложения карты нормалей мне стало необходимо вычислять векторы касательных дл всех вершин, нашел пикрелейтед для получения их, но вот ведь незадача - веер состоит из нескольких треугольников, да и к тому же каждая вершина в модели вообще будет использоваться по нескольку раз. Так получается, мне теперь придется потеснить буфер индексов и выкинуть его, а модель разбить на отдельные треугольники?
Аноним 17/09/16 Суб 22:38:10  300864
>>300775
Тебе, по идее, нужно тагент посчитать и его тоже на ГПУ загрузить (как и вершины и текстурные координаты, например)
И вот таким шейдером рисовать
http://pastebin.com/ZJUcY5YA

https://web.archive.org/web/20080512083730/http://www.terathon.com/code/tangent.php
Аноним 18/09/16 Вск 16:22:49  300949
(150Кб, 640x480)
(160Кб, 640x480)
>>300476
Моделька не замкнутая, поэтому иногда течет. Думаю все же на шедоумапах остановиться. Вот для примера PCF4x4 на 2 скрине. Еще немного поэксперементирую со всякими variance.
Аноним 18/09/16 Вск 18:27:08  300964
>>300949
А если какой-нибудь FSAA наложить, может норм будет?
Аноним 18/09/16 Вск 18:52:29  300965
>>300949
Сам сейчас курю тему с тенями, нашел один интересный документик про теневые карты: http://cg.ivd.kit.edu/publications/2015/sssm/StochasticSoftShadows.pdf
Если коротко: обещают за хорошее время рендерить тени достоверного вида.
Аноним 22/09/16 Чтв 16:11:38  301725
Аноны, где можно найти пример хелло ворлда с использованием OpenGL4 и SDL2 на сишке? Везде кресты.
Аноним 22/09/16 Чтв 16:28:21  301727
>>301725
http://pastebin.com/rWcQg0QQ
Аноним 22/09/16 Чтв 16:32:32  301728
>>301727
Добра тебе няша, буду разбираться. Хотя как-то жирно для хелло ворда, я ожидал строк 50. Надеюсь ты меня не обманул.
Аноним 22/09/16 Чтв 16:56:11  301730
>>301727
GLCheckError() наркоман писал?
Аноним 22/09/16 Чтв 16:58:30  301731
>>301730
Я его из Дума 3 взял.
Аноним 22/09/16 Чтв 17:29:22  301737
(26Кб, 625x80)
(75Кб, 851x313)
>>301731
Точно из третьего Дума?
Аноним 22/09/16 Чтв 17:40:28  301741
>>301737
https://github.com/id-Software/DOOM-3-BFG/blob/master/neo/renderer/RenderSystem_init.cpp#L869
Аноним 22/09/16 Чтв 17:57:09  301744
>>301741
Kek. У меня значит не-БФГ, там оно GL_CheckErrors( void ).
И проверяет не 15, а 10 ошибок. Вообще пушка. Кармак, как ты мог такую хуйню написать?!
Аноним 22/09/16 Чтв 17:59:42  301745
>>301744
Охуел? Кармак - бог.
Аноним 22/09/16 Чтв 18:04:24  301746
>>301744
Можешь глянуть что теперь он пишет.
https://github.com/SoylentGraham/VRLib/blob/master/jni/GlUtils.cpp#L543

Алсо, кстати интересный момент.
Вот в индустрии есть крутые чуваки которые делают годные вещи и вообще они люди опытные, много чего написали и попробовали.
Интересно читать их статьи и какие-то наблюдения, но не всегда можно посмотреть их код.
Ну как-то вдохновиться им, какие-то интересные моменты найти для себя: "Блин круто! Я даже не думал, что так можно написать" и тд и тп.
Аноним 22/09/16 Чтв 18:53:29  301755
>>301746
>github
Вот так я как раз и думал переписать эту функцию - while, пока все ошибки не собраны. Видимо прошлую версию все же не он писал.

>посмотреть их код
ИМХО Кармак действительно один из немногих, чей реально рабочий код можно вот так просто увидеть. Еще есть утекшие исходники HL2, но это по сути наследие Кармака (Quake 1 -> GoldSRC -> Source).

Правда мне больше хотелось бы видеть статьи с разборкой рендера как в блоге http://www.adriancourreges.com/ - там разобраны Doom 2016, Deus Ex HR, GTA 5 и Supreme Commander.
Аноним 22/09/16 Чтв 19:06:15  301758
>>301755
Скачиваешь renderdoc и разбираешь. Совсем дурак чтоли.
Аноним 22/09/16 Чтв 19:06:39  301759
>>301755
> Видимо прошлую версию все же не он писал.
Прошлая версия писалась лет 17 назад. Она просто перекочевала в Дум.
https://github.com/id-Software/Quake-III-Arena/blob/master/code/renderer/tr_init.c#L241
Аноним 22/09/16 Чтв 19:08:01  301760
>>301755
Алсо, можешь поглять этот реддид
https://www.reddit.com/r/GraphicsProgramming/
Аноним 22/09/16 Чтв 19:18:08  301763
>>301760
Большое спасибо, анон!
Аноним 22/09/16 Чтв 20:40:31  301778
(20Кб, 379x356)
(18Кб, 526x267)
(8Кб, 515x112)
>>301727
Всё это обязательно указывать? В других примерах такого не вижу.
Аноним 22/09/16 Чтв 20:48:07  301780
>>301778
Ну вообще вроде как в документации написано, что атрибуты инициализируются какими-то базовыми значениями.
Я написал просто чтоб было.
Может закомментировать и глянуть как будет работать.
Аноним 22/09/16 Чтв 22:19:10  301797
>>301727
И да,
> #include <GL/glew.h>
Везде вижу использование всяких glew/glu/etc. Зачем? Это же надстройки над opengl. Почему нельзя писать на чистом opengl? Поясни пожалуйста за это.
Аноним 22/09/16 Чтв 22:22:29  301798
>>301797
> Почему нельзя писать на чистом opengl? Поясни пожалуйста за это.
Тебе придётся вручную получать адреса функций опенгла, писать константы какие-то и тд.
Ну а библиотека glew всё делает сразу за тебя.
Аноним 22/09/16 Чтв 23:50:52  301806
Так ананасы. По поводу шапки.
Нашёл хороший сборник ссылок про то, что касается опенгла сразу на одной странице.
https://github.com/eug/awesome-opengl
Это нам позволит сократить шапку раза в полтора.

Стоит ли повесить её?

Аноним 23/09/16 Птн 02:23:42  301821
>>301727
Весь день тупил в эту пасту, opengl сложный, не могу понять принципа рисования. Вот есть у меня SDL-окно, opengl и glew тоже инициализировал, как мне нарисовать квадрат 40x40 пикселей? Как с пикселями вообще работать? Аноны, спасайте, голова пиздец болит, сложно-сложно-сложно.
Аноним 23/09/16 Птн 02:55:14  301822
>>301821
http://learnopengl.com/
Аноним 23/09/16 Птн 09:30:02  301842
>>301821
Зачем тебе работать с пикселями? OpenGL работает с треугольниками. Переключай голову.
Аноним 23/09/16 Птн 10:44:09  301849
>>301821
Купи новую голову, поумнее, для начала.
Аноним 23/09/16 Птн 11:00:02  301850
>>301842
А OpenGL разве нельзя сказать, чтобы он с пикселями работал? Слышал, что можно. Нагуглить не могу. У меня 2D.

>>301849
Это сложно.
Аноним 23/09/16 Птн 11:06:24  301851
>>301850
Да можно, работай с пикселями, нах - https://www.opengl.org/sdk/docs/man2/xhtml/glDrawPixels.xml
Потом ты скажешь, что OpenGL тормозной, что уеч быстрее спрайты рисует и ты уйдешь из этого треда так и не узнав, что спрайты сейчас рисуют при помощи текстурированных треугольников.
Аноним 23/09/16 Птн 11:21:33  301855
>>301851
Это не то. В том примере, про который я слышал меняли opengl'овский 0.000 и 1.000 на обычные пиксели, в итоге можно было юзать всё как раньше, но размеры указывать в пикселях. Там что-то с glMatrixЧётотам было. Я хочу рисовать текстурированные треугольники в пикселях!
Аноним 23/09/16 Птн 11:36:13  301858
>>301855
Делай матрицу масштабирования с размерами клиентской области, будет тебе натягивание совы на глобус^H^H^H^H^H^H^H^H^H^H^H^H^H^H нормальных координат на оконные.

И все же, прекрати ебать себе могзги, положи их на место и пользуйся по назначению. Что у тебя там, клон марио-террарии-метроидвании с пикселяртом и претензией на олдскул, что ты так в оконные координаты вцепился?
Аноним 23/09/16 Птн 11:41:37  301859
>>301858
> Делай матрицу масштабирования с размерами клиентской области
Блядь, а можно конкретней? Яж не разберусь.

> прекрати ебать себе могзги
У меня просто 2D игра, зачем мне что-то помимо пикселей?
Аноним 23/09/16 Птн 12:01:48  301863
>>301859
Блин. Ты треугольник хотя бы нарисовал уже? А то я не знаю, на каком языке с тобой вообще говорить.

>Яж не разберусь.
>У меня просто 2D игра, зачем мне что-то помимо пикселей?
Ну нахуя ты в OpenGL-треде вообще? Надо чтоб "Стильно, модно, молодежно", так что ли?

Сри через GDI пикселями своими, раз не хочешь про то как в OpenGL слушать.
https://msdn.microsoft.com/en-us/library/windows/desktop/dd145078(v=vs.85).aspx
Аноним 23/09/16 Птн 12:08:46  301866
>>301863
> Ты треугольник хотя бы нарисовал уже?
Нет, там двумерный массив, а это страшно, сложно, я решил отложить и изучить теорию.

> Надо чтоб "Стильно, модно, молодежно", так что ли?
Да я вообще к трудэ не хочу прикасаться, но надо ускорение от карточки.
Алсо, "Стильно, модно, молодёжно" это вулкан, скорее.

> microsoft.com

И всё же, поясни за матрицу. Неужели я на столько сильно туплю?
Аноним 23/09/16 Птн 12:11:23  301867
>>301866
Я даже не знаю, проигрывать с тебя или плакать.

Пожалуйста, начни вот отсюда (забудь про игру пока): https://code.google.com/archive/p/gl33lessons/
Аноним 23/09/16 Птн 12:18:05  301868
>>301866
> забудь про игру пока
Это я умею.

> code.google.com
Зачем заливать что-то на такие анальные сайты? Без JS оно не работает, с JS тоже не работает, сукаблядь, бесит. Ладно, хватит баттхёрта, открыл в другом браузере. Буду разбираться, спасибо.

И да, у меня ещё один вопрос на счёт OpenGL, мне всю свою жизнь придётся ебать числа с плавающей точкой? Все эти флоаты, даблы, к чему? С интами нельзя будет работать? Оно же и производительность режет, и просто неприятно.
Аноним 23/09/16 Птн 12:18:40  301869
Промазал, >>301868 это сюда >>301867 .
Аноним 23/09/16 Птн 12:41:51  301873
>>301867
Не кормите его, это тролль.
Аноним 23/09/16 Птн 13:29:52  301886
>>301868
Ух, ты на чем сидишь в 2016 году, на 486SX50MHz с 4Mb RAM, S3 Virge 2Mb, HDD 100Mb??
Аноним 23/09/16 Птн 13:50:13  301888
(1Кб, 141x24)
(22Кб, 541x202)
>>301867
>Пожалуйста, начни вот отсюда (забудь про игру пока): https://code.google.com/archive/p/gl33lessons/
Виндоблядство какое-то, да и объясняет плохо. В общем я решил твою пасту переписывать. Дошел до шейдеров и охуел, сложно, но хотя бы понятно что происходит.
Пикрелейтед, сигфолт, почему? Debug1 ещё выводится, debug2 и debug3 — нет. Уже пол часа пытаюсь найти причину.

>>301886
Huintel core i7-3770, 16Gb RAM.

Не понял к чему ты это написал, поясни.
Аноним 23/09/16 Птн 13:57:36  301889
>>301888
Включаю режим Ванги: shader_file после fopen у тебя на null показывает, поскольку файл с текстом шейдера не лежит там где его пытается открыть программа. По дефолту клади его пока рядом с экзешником (с путями потом будешь разбираться).
> Huintel core i7-3770, 16Gb RAM.
Нормальная тачила.
Sizeof( int ) == sizeof( uint32_t ) == 4 == sizeof( float ). Про производительность не думай пока у тебя нет вообще ничего. Ты же не пишешь песочницу с отработкой дохулиарда взаимодействий, а значит про производительность не думай пока. Кармак с float работает, значит норм.
Аноним 23/09/16 Птн 14:03:23  301890
>>301889
> поскольку файл с текстом шейдера не лежит там где его пытается открыть программа
Стоп, какой файл?

> По дефолту клади его пока рядом с экзешником
Что и зачем мне куда-то класть? Он же программой создаётся, нет? Не понял немного. Зачем вообще шейдеры нужны? Я думал они для того, чтобы йоба-грофен сделоть.

> Кармак с float работает, значит норм.
У Кармака задачи другие.
Аноним 23/09/16 Птн 14:06:30  301891
>>301890
Читай глазками, а не ректальным очком анальной жопы:
> После того как исходный код шейдеров написан их можно загрузить из программы и создать из них шейдерную программу. Исходный код шейдера это обычный текст, загрузить его можно как обычный текстовой файл, в исходника к статье для этого используется функция LoadFile, которая открывает файл, узнает его размер, выделяет под данные файла память и читает весь файл в память, после чего эти данные можно использовать.
Аноним 23/09/16 Птн 14:09:28  301892
>>301891
Да хватит уже кормить его!
Аноним 23/09/16 Птн 14:11:33  301893
>>301892
Я сегодня добрый относительно.
Аноним 23/09/16 Птн 14:18:00  301895
>>301891
Я ту статью вообще дропнул. Сейчас перечитал, стало понятнее, чувствую прилив знаний. Однако я по прежнему не понимаю где мне взять шейдеры не злись, Анончик, я туповат. Вот эта паста http://pastebin.com/raw/rWcQg0QQ генерит сраный шейдер или нет? Я же её переписываю.

>>301892
Но я же не разберусь!
Аноним 23/09/16 Птн 14:20:50  301897
>>301895
Ты для начала ответь на самый простой вопрос - нахуя тебе вообще OpenGL?
Аноним 23/09/16 Птн 14:22:28  301898
>>301895
Шейдеры есть в тексте статьи и в архиве, прикрепленном к ней.
Аноним 23/09/16 Птн 14:35:22  301901
>>301868
>Все эти флоаты, даблы, к чему? С интами нельзя будет работать? Оно же и производительность режет
Шёл 2016й год, а дауны всё ещё не знали, что операции с плавающей точкой стали быстрее целочисленных операций ещё два поколения назад(а уже в первых пентиумах их производительность сравнялась).
Аноним 23/09/16 Птн 15:13:47  301910
(81Кб, 543x831)
>>301897
Скорость.

>>301898
Разобрался! Вроде как. Результата не вижу, просто сигфолта нет. Короче вот мой инит, на который я убил полные сутки, если не больше, оно уже рабочее? Как, например, фон белым цветом залить? Мне нужен хоть какой-то результат и я съебу в мир снов, ибо заебался, вас также перестану доёбывать некоторое время.
Треугольник рисовать не хочу, эт сложно.

Функция "build_shader" полностью скопипизжена из аналогичного примера на пастбине.
Аноним 23/09/16 Птн 15:19:45  301914
>>301910
>Скорость.
Т.е. тех >9000 fps, которые тебе для твоих задач будет выдавать практически любой готовый 2D движок, тебе недостаточно?
Аноним 23/09/16 Птн 18:12:28  301923
>>301910
Посоны, ну как фон-то сделать.
Аноним 23/09/16 Птн 18:29:27  301925
>>301923
> как залить фон белым цветом
glClearColor + glClear например.

Болезный, ты сейчас спрашиваешь как написать сочинение про курочку Рябу (про "Мертвые души" или "Войну и мир" уже не обсуждаем, это недостижимая планка большинства местных кириллов), когда сам еще не заполнил палочками прописи за первую четверть первого класса, и после этого обижаешься, что тебя тут не любят. Понял?
Аноним 23/09/16 Птн 18:37:49  301930
(2Кб, 282x39)
>>301925
Я пытался так сделать, ничего не работает, вот и спрашиваю что забыл.

> Понял?
Я всё понимаю, и мне за это стыдно, честно-честно, но я ведь сам не справлюсь. Вот я сейчас этот хелловорд добью и больше тут по таким глупостям какать не буду, только с хелловордом помогите.
Аноним 23/09/16 Птн 18:38:50  301931
>>301930
1) Заливаешь черным цветом.
2) А буфера флипнул?
Аноним 23/09/16 Птн 18:44:07  301932
>>301931
Объясни как конкретно "флипнуть" буфер. glFlush() не оно?
Аноним 23/09/16 Птн 18:55:38  301937
>>301932
Не угадал, SwapBuffers (если что, входит в API оконной системы, или того SDK, который юзается поверх окон).
Аноним 23/09/16 Птн 19:04:33  301939
>>301937
О, круть, работает! Только в SDL это делается с помощью функции SDL_GL_SwapWindow(window), ели нашел.

съебал
Аноним 24/09/16 Суб 18:52:52  302062
(380Кб, 640x480, 00:00:11)
Двач, помоги. Как исправить исчезание тайлов (вембрелейтед)? Это как-то связано с камерой, но так как я полное дно и учу OpenGL лишь неделю, я просто не понимаю как это фиксить.

const char g_vertexShaderSource =
"#version 330 core\n"
"in vec4 data;" // quad + tex coord
"out vec2 TexCoords;"
"uniform mat4 proj;"
"uniform mat4 model;"
"uniform mat4 view;"
"uniform vec4 atlas;"
"void main() {"
" TexCoords = atlas.xy + (data.zw
atlas.zw);"
" gl_Position = proj view model vec4(data.xy, 0.0, 1.0);"
"}"
;

const char
g_fragmentShaderSource =
"#version 330 core\n"
"in vec2 TexCoords;"
"out vec4 color;"
"uniform sampler2D image;"
"void main() {"
" color = texture(image, TexCoords);"
"}"
;
Аноним 24/09/16 Суб 19:18:02  302068
>>302062
Забейте, я просто еблан, который считает координаты беззнаковыми переменными.
Аноним 06/10/16 Чтв 15:32:00  303101
>>302965
Почему ты решил, что он умер?
Аноним 07/10/16 Птн 13:29:24  303203
Я что-то второй день уже туплю, и никак не соображу, как реализовать линейную интерполяцию текстурных координат на треугольнике(имитацию отсутствия коррекции перспективы). Ткните меня носом в готовое решение, пожалуйста(оно же должно быть).
Аноним 07/10/16 Птн 17:41:43  303233
>>303203
glOrtho?
Аноним 07/10/16 Птн 18:32:12  303244
>>303233
Нет, нашёл всё-таки. Надо всего-то было передавать текстурные координаты с типом noperspective.
Шейдер, имитирующий говнографику PS1, почти готов!
Аноним 07/10/16 Птн 18:56:35  303252
>>303244
И где же он?
Аноним 26/10/16 Срд 21:21:25  306175
Поясните за буфер глубины.
В общем решил постигать Constructive solid geometry через буферы stencil и depth, но не могу понять, почему моя сфера исчезает, когда я задаю glDepthFunc(GL_GREATER). Т.е. я ожидаю, что буду видеть задние стенки сферы, а вижу ровно нихуя.
Боюсь, что где-то фундаментально неправ. алсо GL ES2.

Чем изначально инициализирован буфер глубины? Или невидимые стенки каким-то хером не рендерятся вообще? Вырубание кулфейсов не помогает что-то увидеть
Аноним 26/10/16 Срд 22:33:27  306190
>>306175
>Или невидимые стенки каким-то хером не рендерятся вообще?
Куллинг по нормалям. Отключи его.
Аноним 27/10/16 Чтв 20:30:24  306339
crap.png (392Кб, 806x626)
Рендерю тут кубы через GS(знаю, что он для этого не предназначен).
А ничо так, миллион кубов на экране без просадок на офисной интегрированной видеокарте. Можно свой майнкрафт(который на этой машине даже не запускается) пилить, лол.
Аноним 27/10/16 Чтв 20:38:07  306342
>>244623
Ну я же не только отрисовкой занят. Мне еще, знаешь ли, физику симулировать нужно, звук проиграть, подготовить анимацию, обработать сетевые данные и локальный ввод. Обеспечить работу геймплейных фич и ИИ. И все это тратит время, причем вполне прилично. Так что хорошо бы, что бы кадры рисовались быстрее, что бы на прочие дела времени оставалось больше.
Аноним 27/10/16 Чтв 20:39:10  306344
>>246578
А что такое мировое пространство ты знаешь? А объектное?
Аноним 27/10/16 Чтв 22:07:27  306368
>>306190
не, вот что было.
Что-то привык к undef-айнам
надо было: glClearDepth(0.0);
>Since the depth buffer values maps 0.0 to the near clip plane, and 1.0 to the far clip plane, there is no chance for any object under any situation to have a depth buffer value above 1.0. If it has, it's beyond the far clip plane and will be clipped instead. If it's not, it's value is less than 1.0 and is rejected by the depth buffer test.
Аноним 31/10/16 Пнд 14:29:57  306828
Untitled-1.png (459Кб, 806x626)
Ололо. Только пиздец неудобно стрипами выводить, нормали какие нужно не сгенерировать.
Аноним 03/11/16 Чтв 16:03:35  307394
>>306828
красота!
Аноним 05/11/16 Суб 00:23:41  307637
Какую либу для создания контекстного окна для рендеринга и инпут/аутпута стоит использовать вместе с OpenGL в 2016почти 2017 году? Использовал раньше GLUT но сейчас начинаю новый проект и думаю начать использовать что-нибудь по-новее, если есть.
Аноним 05/11/16 Суб 00:26:00  307638
>>307637
Ты оппост смотрел, еблан?
Аноним 05/11/16 Суб 01:53:41  307650
14593336573600.jpg (36Кб, 421x604)
Есть какие-нибудь понятныи книжки/туториалы по PBR в реал-тайме? Я неплохо разбираюсь в обычном PBR рендеринге, во всяких GI алгоритмах, алгоритмах семплинга, брдф, хочу вот почитать про реалтайм рендеринг теперь.
Аноним 05/11/16 Суб 01:54:26  307651
>>307650
понятные*
Аноним 05/11/16 Суб 02:14:45  307654
>>307650
https://interplayoflight.wordpress.com/2013/12/30/readings-on-physically-based-rendering/

> Я неплохо разбираюсь в обычном PBR рендеринге, во всяких GI алгоритмах, алгоритмах семплинга, брдф
А вот на счёт этого что можешь посоветовать почитать/посмотреть?
Ну чтобы понять о чём это и ориентироваться в теме.
Аноним 05/11/16 Суб 16:26:10  307730
я к вам вкачусь пожалуй )))
Аноним 05/11/16 Суб 16:30:37  307732
что посоветуете для создания карт почитать? структуру хранения файлов, про форматы карт? Пилить свой супер редактор карт? или лучше поискать готовый?
Аноним 05/11/16 Суб 17:39:56  307753
>>307732
Ищи готовый лучше.
Аноним 05/11/16 Суб 17:46:04  307755
>>307753
ну вот я подумал ок возьму от квейка, ток чот в гугл не осилил документацию как устроен мап файл что там ваще надо чтоб загрузить такую карту себе в прогу
Аноним 05/11/16 Суб 22:40:27  307819
Тут все юзают Visual Studio? Никого не смущает, что там блядский MSVC вместо нормального компилятора? И в чём смысл юзать вообще OpenGL тогда, если всё это будет работать только под виндой?
Аноним 05/11/16 Суб 22:52:37  307827
>>307819
Отладил в студии, потом перекомпилил на чем надо, не?
Аноним 05/11/16 Суб 22:55:15  307830
>>307827
Мне почему-то кажется, что если проект большой и там присутствуют всякие точные расчёты, то если скомпилить потом на другом компиляторе, получится нерабочая хуйня. Как минимум будут проблемы со всякими там округлениями. Хотя если использовать только GL типы, то хуй знает.
У кого-нибудь есть опыт подобный?
Аноним 06/11/16 Вск 00:32:14  307850
tom-cruise (43Кб, 600x400)
>>307819
>2016
>программировать под шиндовс
>в студии
Как же жалко спермохлёбов, которые качают многогигабайтную VS, чтобы скомпилировать несколько десятков строк кода. И к тому же, лишены таких полезных штук, как clang и valgrind. Я вот хз как еще под виндой профилировать эффективность использования процессорного кеша. Наверное только какие-нибудь платные профайлеры от интел.
Аноним 06/11/16 Вск 00:44:47  307854
>>307850
>профилировать эффективность использования процессорного кеша
Лолирую со школьника.
Аноним 06/11/16 Вск 00:48:40  307855
>>307830
Детерминизм может иметь значение только в сетевом коде. В графике всем на это довольно сильно похуй, так как ты всё равно не сможешь наговнокодить погрешности достаточно крупные хотя бы для того, чтобы у тебя хоть один пиксель не совпал.
Короче, ты хуйнёй страдаешь.
>>307850
А вот и нитакоекакфсе красноглазое уёбище подползло. Которое студию видело последний раз, наверное, десять лет назад, и не знает, что нынче она обладает самым мощным и удобным дебаггером, до которого валгриндам срать и срать, и всё равно не просраться. И да, профилировать использование процессорного кэша она тоже умеет. И загрузку процессорных каналов показывает. И распределение инструкций по ядрам. И скомпилированный код вплоть до уровня машинных кодов. И ещё много чего, но ты же ведь всё равно не поверишь, а посмотреть и убедиться сам не можешь, потому что ставить окнеблядиксное говно принципиально не будешь(экспресс-версия которого весит 160мб, хуй знает где ты гигабайты нашёл)?
Аноним 06/11/16 Вск 00:54:02  307857
Я тут писал всё время на opengl3.3 и сейчас решил перекатиться на 4.0+. Видеокарта позволяет(посмотрел через GL View Extension или что-то такое + на сайте). В интернете пишут что-то про драйвера, но ведь opengl32.lib валяется в папке с компилятором. Кароче, я не понимаю. Что мне нужно сделать?
Аноним 06/11/16 Вск 00:56:54  307858
>>307857
не с компилятором, а в системной, в виндоус сдк кароче*
У меня уже глаза слипаются.
Аноним 06/11/16 Вск 01:01:30  307859
>>307855
Вот и пиздабол подъехал.
Во-первых, выпуски express устарели лет на 6 и уже давно не поддерживаются. Они более чем всраты, никакого вразумительного дебага ты там не найдешь, а компилятор даже с++11 поддерживает не полностью.
Во-вторых, дебаггер самый обычный, ничем не отличающийся от оного в любой опенсорсной среде типа codelite или qt creator.
В-третьих, попробуй поставить visual studio 2015 community, и охуеешь от размера, минималка (только цепепе, без шершавого и тулзов для мобилок/веба) выйдет в несколько Гб. Полный комплект исчисляется уже десятками гигабайт.
Аноним 06/11/16 Вск 01:15:19  307863
>>307858
>>307857
Или там просто нужно выставить версию при создании контекста, а либа та же остаётся?
Аноним 06/11/16 Вск 06:53:20  307882
>>307732
бампчую
Аноним 06/11/16 Вск 08:36:26  307893
>>307882
анон можешь посоветовать примеры структур файлов моделей, карт, шейдеров.

Например лучше модель хранить в одном запакованом файле, или в папке где обж файл, текстурка рядом лежит и прочие вещи. Или в одном гиганском файле хранить все модели. Такая же фигня и с картами.

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

Книжки из оп поста и сайты смотрел, большинство из них рендрит треугольник а потом начинает сразу рендрить готовые сцены, что бы описать всякие фишки работы с шейдером.
Аноним 06/11/16 Вск 11:08:00  307905
>>307893
Отрендери треугольник для начала, чтобы не задавать идиотских вопросов, не имеющих отношения к теме треда.
Аноним 06/11/16 Вск 13:48:23  307933
>>307931
Толсто, петушара.
Аноним 07/11/16 Пнд 08:37:13  308140
лол
Аноним 09/11/16 Срд 05:13:42  308630
Может кто-нибудь рассказать, зачем вообще нужны GL типы данных? Типа GLfloat, GLuint ну вы поняли.
В каких случаях их стоит использовать?
Например, скажем, я написал свой бичёвый аналог glm (вектора/матрицы/всякие трансформации). Что будет, если я перепишу с GLfloat вместо float?
Аноним 09/11/16 Срд 05:53:23  308633
>>308630
В С и С++ встроенные типы данных могут иметь разные размеры, в зависимости от версии компилятора или платформы. Использование псевдонимов позволяет повысить платформонезависимость.

Хотя сейчас это и не так актуально для ПК.
Аноним 09/11/16 Срд 06:38:46  308634
>>308630
Не нужны, это костыль для устаревших платформ.
Аноним 16/11/16 Срд 22:52:41  309920
Какой-то мудень начал переводить learnopengl туториал на хабре. Ожидаем прирост школьников и просто всяких залетных мразей.
Аноним 16/11/16 Срд 23:41:15  309924
>>309920
> Ожидаем прирост школьников и просто всяких залетных мразей.

От чего такой вывод?
Аноним 18/11/16 Птн 19:46:24  310291
yoba.png (135Кб, 640x480)
То чувство, когда используешь йоба-шейдеры в пиксельной параше.
Аноним 18/11/16 Птн 21:20:21  310326
>>310291
...Но все равно получается криво. Ты, либо, разрешение текстур подними, вместе с размерами экранного буфера, либо разрешение карты нормалей сделай соответствующим.
Аноним 21/11/16 Пнд 19:12:11  310796
>>288377
еблан, блять, пиздуй на филфак.
Аноним 23/11/16 Срд 19:00:14  311139
wut.png (180Кб, 806x626)
>>310326
Не, это я параллакс мэппинг хуйнул, но поначалу проебался с инвертированными координатами и тем, что текстуру высот без сглаживания скармливал(охуеть артефакты от этого лезут). Плюс у меня все текстуры в одном атласе, и если для цвета и нормалей тайлить всё норм, то для текстуры глубины я пока так и не могу окнчательно избавиться от шакальных артефактов на стыках. Похоже, придётся для глубины каждый тайл отдельной текстурой делать всё же(которые, впрочем, всё равно можно нарезать из одного файла прямо в коде).
Аноним 23/11/16 Срд 20:17:58  311148
>>311139
Что пилишь?
Аноним 23/11/16 Срд 21:28:57  311160
>>311139
Как ты атлас организовал?
Аноним 23/11/16 Срд 23:38:15  311179
00331.jpg (24Кб, 450x333)
>>311139
насколько помню в ярости мегатекстуры всем кускам текстуры ещё в "атласе" (что и есть мега-текстура) обрезали не по рамке, а ещё толи 16 пикселей "за рамкой" оставляли чтобы артефактов не было

возможно это твой случай
Аноним 24/11/16 Чтв 13:21:53  311211
>>311148
Шутан. Хотя кого я обманываю, движок я пилю.
>>311160
Как все организуют.
>>311179
Я знаю, что это артефакты оверсэмплинга, т.к. разрешения флоатов не хватает. По-видимому, придётся всё же добивать по краям линию.
Аноним 24/11/16 Чтв 15:51:06  311226
>>311211
> Шутан. Хотя кого я обманываю, движок я пилю.
Прикольна. Я тоже время от времени делаю, лел.
Ищи в треде вебмки, они мои, лел.
Аноним 25/11/16 Птн 16:28:21  311387
fffffuuu.png (208Кб, 806x626)
>>311139
Охуеть, два дня с этой хуергой трахался, но подебил таки.
Итого выяснилось, что артефакты на стыках лезут не из-за протекания текстур, а из-за того, что на стыках неправильно определяются ЛОДы, и берётся мипмэп не того уровня, как остальная текстура.
Проблема известная, но только вот почти нихуя не описанная нигде. Лечится обычно хранением в атласе текстуры в четыре раза большего размера, но я вылечил просто отключением нахуй мипмэпов, так как всё равно вместо текстур у меня гигантские говнопиксели, выглядящие одинаково на любых имеющихся расстояниях.
Аноним 25/11/16 Птн 20:13:54  311404
>>311387
В отдалении эти пиксели будут выглядеть ещё хочу без мипмаппинга.
Аноним 28/11/16 Пнд 21:19:01  311866
grass.png (311Кб, 806x626)
Генерируем траву через GS, первый уровень.
Аноним 01/12/16 Чтв 13:14:42  312300
>>195365 (OP)
Хотел задать вопрос, но пока писал - сам придумал ответ, проверил - работает, всем спасибо, идите нахуй.
Аноним 01/12/16 Чтв 14:03:34  312316
>>312300
Молодца, всё правильно сделал.
Аноним 03/12/16 Суб 11:13:47  312684
Я полный ноль в триде, второй день сижу, ебусь с матрицами. Вроде, понял, как работает камера, нашел функцию lookAt, которая автоматически берет некоторые параметры камеры и вычисляет позицию вершин с их учетом. Есть функция paintGL, которая выполняется каждый фрейм. Логично засунуть lookAt туда, но тогда у меня выходит, что результирующая матрица постоянно меняет свое значение при том, что камера все время находится на одном месте, и отрисовывается, будто кубик постепенно отдаляется. Как быть?
Аноним 03/12/16 Суб 11:36:51  312687
>>312684
Все, разобрался. Надо просто на каждый фрейм создавать новую матрицу view.
Аноним 03/12/16 Суб 19:56:53  312770
А кто-нибудь подскажет, как камеру вращать? Ничего не гуглится нормального, википедия предлагает хуячить невъебенную матрицу вращения. Это пиздец какой-то, можно же сделать попроще. Больше ничего найти не могу. Либо какая-то хуйня написана, либо ничего не работает.
Аноним 03/12/16 Суб 21:56:58  312776
>>312770
>можно же сделать попроще
Юзай ДВИЖКИ
Аноним 03/12/16 Суб 22:30:24  312779
>>312770
Зачем ты берешься писать движок, если даже базовые вещи для тебя непонятны?
Аноним 03/12/16 Суб 23:03:12  312781
>>312779
То есть, если я не могу что-то осилить, значит нельзя к этому прикасаться? А какие базовые вещи ты подразумеваешь - матрицу поворота, представляющую из себя ебаное нагромождение тригонометрального хаоса?
А вообще я уже разобрался, просто гуглил немного неправильно.
Аноним 04/12/16 Вск 02:53:59  312810
>>312781
Пока ты не знаешь базовых вещей (линейной алгебры), к написанию трехмерного движка прикасаться нельзя, все верно.
Аноним 04/12/16 Вск 11:51:24  312839
>>312810
Речь о линейной алгебре и шла, болван. И да, все детали знать все равно невозможно. Никто и не мог подумать, что поворот можно описывать несколькими разными способами, ведь ни в википедии, ни в некоторых учебниках, приведенных в шапке об этом не было сказано ни слова.
Аноним 04/12/16 Вск 18:38:35  312932
>>312839
Учитывая, что в первом же туториале из шапки это подробнейшим образом расписывается со всей математикой, то болван тут только ты. Иди уже возьми юнити, там всё за тебя сделано.
Аноним 05/12/16 Пнд 15:07:15  313043
grass.png (732Кб, 806x626)
Итого двухуровневая процедурная трава на GS, работает приемлемо на встроенной Intel видяхе.
Только после всех правок и отладок мне самому на геометри шейдер смотреть страшно теперь.
Аноним 05/12/16 Пнд 15:56:53  313053
>>313043
Выглядит отвратительно.
Аноним 05/12/16 Пнд 16:43:21  313061
>>311866
>>313043
Неплохо. Теперь добавь цветочков всяких, кустов и деревьев, чтобы естественнее выглядело. Что за игру пилишь?
Аноним 05/12/16 Пнд 16:58:30  313067
>>313053
Есть такое. Чтобы нормально выглядело, теперь надо нарисовать приличные спрайты травы(а не взять первый попавшийся из гугла), добавить освещение, анимацию и тени на переднем уровне. А то пока что свет считается банально по нормали земли.
>>313061
Ничего не пилю. Просто нарабатываю скиллы и изучаю возможности.
Аноним 06/12/16 Втр 20:51:50  313248
Скажите, как эффективнее всего (по роизводительности) показывать двухмерную картинку (массив цветовых значений) в клиентской области окна?
Можно ли напрямую попиксельно выводить в color buffer?
Аноним 06/12/16 Втр 20:58:55  313252
>>313248
Статичную? Двумя треугольниками с текстурой.
Аноним 06/12/16 Втр 21:33:32  313257
>>313248
Зачем заморачиваться на производительность при такой задаче, с отрисовкой одной двухмерной картинки даже самая древняя видеокарта справится на ура. Так что >>313252 - cамый простой способ.
Аноним 06/12/16 Втр 21:45:49  313260
>>313257
Дело в том, что это и есть один из самых производительных способов.
Аноним 07/12/16 Срд 06:23:54  313312
>>313252
>Статичную?
Нет. Есть поток изображений от прибора (рентген-аппарт), нужно наложить на них некоторый цифровой фильт и показать результат в окне. Так как скорость потока заранее неизвестна, нужно позаботиться о производительности в самом нагруженном случае. Может есть достатчно быстрый способ выводить в идеопамять (без OpenGL), желательно с двойной буферизацией?
>Двумя треугольниками с текстурой
Не понимаю. Какие треугольники и текстура? У меня нет 3D моделей, у меня - 2D изображения.
Не бейте сильно - я раньше с графикой не работал.
Аноним 07/12/16 Срд 11:05:12  313321
>>313312
Тебе нужно просто выводить прямоугольник с текстурой, как тут: http://www.learnopengl.com/#!Getting-started/Textures
3D это 2D с еще одним измерением.
Обрабатываешь свой результат, как тебе нужно, а потом просто делаешь из него текстуру и загружаешь.
Ты уверен, что тебе нужен OpenGL? Может тебе и какой-нибудь GDI+ подойдет?
Аноним 07/12/16 Срд 13:36:45  313335
>>311387
Лечится текстурными массивами. Тоже когдато ебался с атласами и протеканием в мипах. Потом забил и перешел на Array Texture.
Аноним 07/12/16 Срд 14:00:34  313338
>>195874
ВебГЛ - это отличная идея для демоверсий, например, чтобы не парить юзера качанием бинарника и установкой его на свой компьютер, а ты - ёбаный даун.
Аноним 07/12/16 Срд 17:29:53  313359
>>313335
Я на 3.3 делаю, там их ещё нет.
Аноним 07/12/16 Срд 19:01:10  313378
>>313359
>https://www.opengl.org/wiki/Array_Texture
>Core since version 3.0
Аноним 08/12/16 Чтв 13:27:54  313565
>>313378
Опа! То ли я слепой, то ли мне подсунули табличку с ошибкой, когда я их доступность смотрел.
Отлично, пошёл опробовать.
Аноним 11/12/16 Вск 09:00:42  314035
>>313321
>Ты уверен...?
Нет, не уверен.
>OpenGL или GDI+
А как у GDI+ со скоростью и двойной буферизацией?
И вот ещё вопрос к профессионалам. Как согласовать частоту кадров (и моменты производства кадров) с частотой работы видеосистемы? Может быть видеосистема может посылать какой-нибудь сигнал о том что нужно, чтобы приложение срочно выдало ей следующий кадр (не знаю как правильно сформулировать)?
Аноним 11/12/16 Вск 23:33:53  314186
>>314035
google vsync
Аноним 21/12/16 Срд 18:58:09  315763
Гейманы, хелп.

https://bitbucket.org/pinkierton/dgl/src/41e0d5fb8eca4f2431d0bbeb55280e43c07d644c/app02/source/app.d
167:0

Суть - нихуя не работает матрица перспективы. Перепробовал и считать ее в функции, и подставлять константную - хуй там плавал, черный прямоугольник.
Если заменить на единичную - разумеется все работает (это же все равно что ее и нет), но тогда нихуя нету перспективы - как камеру от объекта не удаляй, он сука всегда одного и того же размера.
Аноним 21/12/16 Срд 21:37:44  315801
>>265718
Объяви свои брушбоксы глобально (за пределами функции) или сделай их статическими.
Аноним 22/12/16 Чтв 08:05:46  315921
>>265718
У тебя на 9 и 10 строчки идёт объявление функций же.
Аноним 28/12/16 Срд 11:35:29  316880
Это нормально что фрагментный шейдер игнорируется напрочь? Вставил шейдер после кода с дисплейными списками старого ГЛ (glbegin-end), в итоге все рисуется цветом предыдущих объектов. Инициализирую правильно, по крайней мере отдельно рисует треугольники нужными цветами.
Аноним 28/12/16 Срд 19:02:58  316922
>>316880
gDEBugger в помощь.
Это должно быть в шапке.
Аноним 28/12/16 Срд 19:12:37  316924
>>316922
Он же мертв уже десятилетие?
Аноним 28/12/16 Срд 20:50:06  316933
>>316924
Чего это? Пользуюсь сам, брат жив. Вещь просто незаменимая.
Аноним 31/12/16 Суб 13:02:44  317400
>>315763
у тебя усеченная пирамида начинается на расстоянии 1.0 от камеры, а объект находится на расстоянии 0.5.
03/01/17 Втр 08:45:28  317676
Безымянный.png (76Кб, 918x809)
Сап. У меня явные проблемы. Помогите советом плис.
Аноним 03/01/17 Втр 08:52:03  317677
>>317676
> cmake
Выкинь это дерьмо и больше никогда к нему не прикасайся. Особенно на винде.
Аноним 03/01/17 Втр 12:28:54  317687
>>317676
>No CMAKE_C_COMPILER could be found.

Не благодари.
Аноним 03/01/17 Втр 13:42:51  317691
pekasmeh.jpg (9Кб, 200x200)
>>317676
> sudo pacman -S glfw-x11
Аноним 03/01/17 Втр 18:11:37  317735
>>317677
а как альтернативу, но годную, что использовать?(меня в гугле забанили, моск кипит немного)
Аноним 04/01/17 Срд 08:53:30  317796
>>317735
не слушай этого дебила, если разрабы сказали использовать cmake, значит используй cmake
Аноним 04/01/17 Срд 14:23:44  317831
>>317735
SCons, WAF, как альтернативу, одного поля ягоды
Аноним 04/01/17 Срд 15:11:51  317836
>>317796
Я даже не знаю кому верить блять, ты хотя бы объяснил бы как Cmake юзать.
Аноним 04/01/17 Срд 17:15:11  317853
>>317796
> не слушай этого дебила
Программа, которая ищет (и не находит) компилятор в реестре и по захардкоженным путям, в то время, когда он настроен и есть в PATH, просто не заслуживает аргументированного обсуждения.
Аноним 04/01/17 Срд 17:17:28  317854
>>317836
>как Cmake юзать
в твоем конкретно случае
http://www.glfw.org/docs/latest/compile.html
а лучше не выебываться и скачать уже готовый билд
http://www.glfw.org/download.html
Аноним 04/01/17 Срд 17:20:57  317855
>>317854
Я уже решил не ебаться с Cmake.
Аноним 04/01/17 Срд 17:25:51  317857
d.png (21Кб, 601x574)
>>317853
>ищет (и не находит) компилятор
кому ты пиздишь?
Аноним 07/01/17 Суб 01:04:33  318170
ZuFf5Ek.png (608Кб, 2696x1612)
Здравствуйте, мои няшки!
Пишет вам полный GL ньюфаня. Вопросов есть у меня.
1. Я пытаюсь нарисовать плоскую картинку из квадратных спрайтов по типу как на пике. Для этого я прохожу в цикле по всем тайлам и каждый накладываю, как текстуру. В принципе получается нормально, но только тогда, когда размер текстуры в пикселах совпадает с размером области ее наложения. Когда я пытаюсь зумить изображение, оно превращается в тыкву, текстуры уродуются и становятся заметны швы между ними. По-видимому, как-то нужно это дело сглаживать. Как?
2. У меня есть условно неподвижный пользовательский интерфейс на переднем плане и некий 2д вид на заднем, который может двигаться и отдаляться. Сейчас я использую для всего одни фиксированные координаты по типу
GL.Ortho (0, w, h, 0, -1, 1);
GL.Viewport(0, 0, w, h);
Мне приходится заниматься неудобными пересчетами координат. Подозреваю, что есть более рациональный способ это организовать. Как?
3. Мне приходится рисовать линии и точки. Я освоился со стандартными методами вроде GL.Begin(PrimitiveType.Lines);
Но все нарисованное выглядит пиксельно и убого. Хочется рисовать красивые плавные линии ( к примеру, с градиентом цвета от середины линии к краям в перпендикулярном направлении). Как это делать?
Пока все, может потом еще вспомню.
Спасибо.
Аноним 07/01/17 Суб 13:09:24  318209
>>318170
Во-первых, всё, что ниже GL 3.3 выкинь на помойку.
Во-вторых, для какого-то простого 2д лучше юзай SFML.
Там, кстати, есть возможность использования шейдеров.
Аноним 08/01/17 Вск 12:19:21  318311
Дело такое. Как заменить цвет определенных пикселов при наложении текстуры? Например у меня есть текстура со спрайтом котика. Я хочу использовать ее для рисования котиков с разноцветными глазами. Для этого пикселы глаз в текстуре я рисую например маджентой. Как мне при наложении перекрасить их в нужный цвет не меняя остальные?
Аноним 08/01/17 Вск 12:37:57  318312
>>318311
Масками.
Аноним 08/01/17 Вск 12:41:23  318313
>>318312
объясни нормально. я только вчера жл учить начал
Аноним 09/01/17 Пнд 08:31:57  318483
>>318313
Ну так возвращайся, когда выучишь, дебил.
наверни, блджад, хотя бы десяток уроков, все вопросы отпадут сами
Аноним 10/01/17 Втр 11:30:12  318627
Привет, такой вопрос. На каком языке еще можно что-то пытаться делать в опенгле кроме сей? Идеально было бы что-то вроде руби или хаскелла, но в инете по этому я нашел чуть более чем нихуя.
Аноним 10/01/17 Втр 11:32:12  318628
Есть множество текстур 6464 (вернее это одна большая текстура с кусками по 6464), нужно прорисовывать фон соответствующий размерам экрана из этих кусков по 64. Сначала я думал на ходу генерировать одну текстуру размером с экран и просто отправлять её на прорисовку как фон. Однако после движения камеры (внутренней камеры) фон должен смещаться. И здесь нужно его пере генерировать, смещая часть и дорисовывая другие блоки с другой стороны. После этого меня посетила идея разбить фон на участки скажем по 512*512, и генерировать их. И прорисовывать фон из этих текстур. И генерировать новые при необходимости. Или не стоит заворачиваться и просто пере генерировать фоновую текстуру каждый раз?
Аноним 10/01/17 Втр 11:39:32  318630
>>318627
Опенггл это набор си функций. Практически любой язык поддерживает вызов си функций из себя. Вот к примеру один такой список: https://www.khronos.org/opengl/wiki/Language_bindings первая ссылка в гугле.
Естественно ты не найдёшь материалов по этим библиотекам. По сути там просто обёртка вызова аналогичных си функций из твоего языка программирования. И что бы написать, что то на нужном тебе языке тебе нужно: Знать какую функцию ты хочешь вызвать на си - это написано в книжках по опенгл и не важно на каком языке все функции всегда вызываются одинаково. И знать как запись этой функции выглядит в твоём языке, это написано в мануале библиотеки обёртки. Конечно некоторые библиотеки поддерживают всякие плюшки, но об этом написано отдельно в их мануалах.
Аноним 10/01/17 Втр 11:45:29  318631
>>318628
Просто делаешь сетку и отрисовываешь.
12/01/17 Чтв 13:53:43  319180
проблема0.jpg (216Кб, 1577x832)
Сап, Господа. Вроде пишу по тутариалу, но возникла такая проблема. Решил обратиться в тред, т.к. сам я разбираться буду от одного дня и до недели/двух недель. Можете объяснить в чём возникла проблема? Серьёзно, исходный код, прилагающийся к тутариалу, смотрел уже.
Если есть какие-то арф. ошибки в посте, то сори
Аноним 12/01/17 Чтв 13:56:13  319181
>>319180
Отвечает Капитан Очевидность:
У тебя не определена переменная vertexShaderSource.
Аноним 12/01/17 Чтв 14:06:32  319184
>>319181
Как её определить?
Аноним 12/01/17 Чтв 14:13:55  319187
>>319184
char * vertexShaderSource;
Не забудь в нее исходник шейдера положить, а то компилировать нечего будет.
Аноним 12/01/17 Чтв 14:19:44  319193
>>319187
спасибо, с меня пиво
Аноним 12/01/17 Чтв 17:20:28  319335
>>319000
если убрать все из рендера и оставить только очистку буферов все равно падает?
Аноним 18/01/17 Срд 15:55:07  322484
квады.jpg (22Кб, 295x263)
Есть объект , состоящий из quads , проблема в том, что квады прорисовываться сразу и так получается , что внешние не видят внутренние , и все они ориентируются на фон ( за прозрачными частями не видно сзади стоящие квады, а сразу видно фон) .
сообсвенно вопрос , как это исправить.
Аноним 18/01/17 Срд 16:27:34  322531
>>322530
>включенным блендингом
включен
Аноним 18/01/17 Срд 16:28:54  322535
>предварительно отсортировав, начиная с дальних от камеры.
т.е. каждый квад прорисовывать отдельно( я прорисовываю пачкой).
Аноним 18/01/17 Срд 16:30:37  322538
>>322533
GL_ONE, GL_ONE_MINUS_SRC_ALPHA
Аноним 18/01/17 Срд 16:37:08  322548
>>322542
>скармливай ему в каждом кадре сортированный набор точек, пусть он из них генерит квады.
так я и делаю, только скармилваю не отсортированный.
Аноним 18/01/17 Срд 16:41:44  322551
>>322542
вот оригинал текстуры
http://rgho.st/8gqrmvCgR
Аноним 18/01/17 Срд 16:52:34  322558
blob (919Кб, 2960x1050)
блендмод.jpg (95Кб, 1274x464)
>>322542
Бленд стоял немного другой, поменял
вот так выглядить один и тот же кусок с разных сторон.
Аноним 18/01/17 Срд 16:57:27  322561
>>322559
>Советую подумать насчет сортировки частиц. Если их не 10кк, то можно быстро отсортировать, только не пузырьком, я например предпочитаю поразрядную сортировку - время почти O(n), только памяти жрет примерно дополнительно 200% от исходного массива, если делать побитово.
частиц всего 5к
использую движок, там он немного специфичен
http://rgho.st/8fWZFQMSr
Аноним 18/01/17 Срд 17:12:24  322568
blob (557Кб, 1039x616)
>>322563
слушай, а как вот от такого дерьма избавляться ?
Аноним 18/01/17 Срд 17:14:53  322573
>>322568
лол, убрал дискард
сделал
>умножением обоих параметров на коэффициенты в районе (0.7;1.0).
и стало не плохо
Аноним 18/01/17 Срд 17:25:16  322580
>>322574
ага
спасибо! пока без сортировки и ZWriteEnable = false ( не пишем в буфер глубины , что бы убрать просвет)
выглядит довольно таких приемлимо
Аноним 18/01/17 Срд 17:26:20  322581
>>322563
>Движок поддерживает GL_DYNAMIC_DRAW буфер?
да
slowpoke
Аноним 19/01/17 Чтв 12:14:38  323020
blob (754Кб, 1020x574)
>>322559
Слушай, сделал сортировку
но все равно если писать в буфер глубины, то получается херня как на скрине, только теперь с другой стороны( ну раньше грубо говоря смотря слева так было, теперь справа)
Аноним 19/01/17 Чтв 12:19:11  323029
blob (514Кб, 1008x564)
>>322583
и еще , ровно в центре моей текстуры
вот такая поебота , фпс на ней падает в 100-150 раз!
не знаю откуда она и как ее убрать( думал там много частитиц алгоритм нагенерил в одном месте, сделал сортировку на выброс рядом стоящих и одинаковых , но не помогло)
Аноним 19/01/17 Чтв 12:59:53  323054
>>323050
да в центре текстуры

>>323045
от ближнего к дальнему
Аноним 19/01/17 Чтв 14:22:37  323153
>>323054
Наоборот сделай, прозрачные объекты положено рисовать от дальних к ближним.
Аноним 19/01/17 Чтв 16:31:23  323302
>>323153
проблему не решило(
Аноним 19/01/17 Чтв 18:08:51  323379
>>322560
>Пацаны правда уже на вокселях и с самозатенением делают
пробовал я делать на вокселях
производительность полная дерьмо
Аноним 20/01/17 Птн 11:17:00  323966
CloudSystem.webm (4004Кб, 1024x576, 00:00:36)
>>323384
вот видос, что выходит.
разницу в 1 частицу не получится сделать, ибо генерируется все процедурно.
Аноним 20/01/17 Птн 11:18:57  323968
CloudSystem 201[...].webm (3155Кб, 1024x576, 00:00:32)
>>323384
а вот так, если не писать в zbuffer.
Аноним 20/01/17 Птн 11:41:05  323981
>>323971
>Пока поэкспериментируй с их яркостью и прозрачностью, помнишь про домножение итоговых частей вектора цвета во фрагментном шейдере?
Помню-помню)
я еще за освещение не брался.
>И еще имеет смысл добавить прозрачность при приближении к камере
а как это сделать?
Аноним 20/01/17 Птн 11:42:06  323982
>>323971
>а сами частицы еще поворачивал бы
ну вроде бы квады, все время смотрят на меня лицом
Аноним 20/01/17 Птн 12:46:01  324015
>>324002
>В конце надо домножать альфу на одну хитрую функцию
у меня кстати еще трабл, у меня ща альфа умножена на 0.7
если умножать на меньшее значение , текстура начинает светиться по ебаному , ща покажу
Аноним 20/01/17 Птн 12:49:20  324020
blob (1507Кб, 2028x1052)
>>324015
вот такое вот дерьмо
Аноним 20/01/17 Птн 12:55:20  324028
>>324025
помогло

Аноним 20/01/17 Птн 17:43:28  324183
CloudSystem.webm (1802Кб, 1024x576, 00:00:22)
>>324025
Вот пока вот так получается.
Аноним 20/01/17 Птн 22:42:43  324698
>>197338
кто такие последние 3?
Аноним 21/01/17 Суб 02:03:32  324853
>>324679
ну у меня ~4к вершин на облако
наверное надо поменьше
ну и функцию которая их генерит надо подкрутить немного, что бы не такое круглое было.
Аноним 23/01/17 Пнд 18:15:03  326557
Cloud.webm (3792Кб, 1024x576, 00:00:36)
>>324183
Аноним 23/01/17 Пнд 18:17:52  326559
>>326557
Перфект
Аноним 23/01/17 Пнд 19:11:39  326664
il-2-sturmovik[[...].jpg (182Кб, 720x405)
>>326557
Ju 87 BOMBANOOLO
убийцу Ил-2 пилишь?
Аноним 24/01/17 Втр 12:52:53  327115
>>326658
выше есть
шейдер особо не менял
Аноним 24/01/17 Втр 12:56:09  327117
>>326664
неа
Аноним 24/01/17 Втр 12:59:52  327118
blob (859Кб, 1189x777)
>>326559
из-за чего вот такое гавно может появляться ?
как полосы
Аноним 24/01/17 Втр 13:03:11  327119
blob (596Кб, 651x526)
>>327118
и еще вот такое дерьмо
когда цвет задаю
Аноним 24/01/17 Втр 13:20:18  327129
>>327124
> генерацию частиц
они не в шейдере генерируются
спс, вроде понял, ща попробую.
Аноним 24/01/17 Втр 13:28:11  327133
>>327124
не помогло
вроде делаю рандомного размера частицы , все равно полосы появляются
Аноним 24/01/17 Втр 13:57:05  327146
>>327137
окей
Аноним 24/01/17 Втр 14:52:30  327172
>>327161
http://rgho.st/8CxfgrGHB
Аноним 24/01/17 Втр 16:12:29  327226
>>327137
бля еще ни хуя не выходит сделать его не однородного цвета
Аноним 24/01/17 Втр 20:06:49  327500
14785318921590.webm (7068Кб, 1280x512, 00:01:05)
Вот правильные облака
Аноним 24/01/17 Втр 20:07:33  327502
14785318926446.webm (6407Кб, 960x540, 00:00:50)
>>327500
бля, не та вебмка
Аноним 25/01/17 Срд 00:43:22  327580
>>327502
ну у меня освещения вообще нету пока
фпс ~25 это не кайф , особенно когда в сцене одни облака.
выглядят конечно они пиздато, как сделанны ?
Аноним 25/01/17 Срд 02:24:45  327592
>>327580
волюм+перлин+ворли+сабсерфейс скаттеринг+атмосферик скаттеринг
видяха ноутбучная интеловская

Аноним 25/01/17 Срд 13:22:11  327691
>>327592
т.е. это частицами?
Аноним 25/01/17 Срд 13:53:16  327705
Запилил вот это в делфи.
Стоит ли перекатываться в кресты?

https://drive.google.com/file/d/0B5eCY5SALqIZTENvWUVkSm01LTQ/view
Аноним 25/01/17 Срд 17:05:45  327798
>>327592
отпиши плиз на почту wowerq@ya.ru если есть возможность, подскажи как размутить таких облаков, хотя бы без освещение
Аноним 25/01/17 Срд 20:26:13  327904
Подскажите, я правильно понимаю, как работает v-sync?
Если, например, я установил swap interval равным 1 (в духе setSwapInterval(1)); далее, если вход в функцию SwapBuffers() произойдёт раньше чем драйвер получит v-blank-сигнал от монитора, то этот поток будет остановлен до получения этого v-blank-сигнала драйвером. Сразу после этого передний и задний буферы поменяются местами и монитор считает изобржение из переднего буфера без разрывов ("tearing"), а поток, вызвавший SwapBuffers(), будет "разбужен" драйвером. То есть приём и обработка событий (пользовательского ввода, таймера...), которые могут произойти пока первый поток "спит" (в SwapBuffers()), нужно производить в других потоках. Если же драйвер получит v-blank-сигнал раньше, чем будет вызвана SwapBuffers(), то поток, вызвавший SwapBuffers(), не блокируется, буферы меняются сразу же, ну и тк делее.
Это всё верно, или нет?
Не очень понятно, поток будет остановлен точно внтри SwapBuffers(), или есть вероятность, что он может проскочить дальше?
Аноним 27/01/17 Птн 20:10:59  329129
Я хочу детектить столкновение в 2д пространстве через рендер в свой фреймбуффер с каким-нибудь stencil буфером. Что-нибудь в буфер и положу, а как потом эффективно прочитать оттуда?
Или может все же как-то можно передать флажок из шейдера?
Аноним 28/01/17 Суб 02:45:30  329369
>>329305
Текстурки кривые, описать формально сложно.
Так-то, конечно, и без gpu не с хер задержка в двадэ-то, но хочется чтоб малейшее соприкосновение на экране детектилось. Да и спортивный инетрес.

Мб в дальнейшем будут тысячи невыпуклых фигур -- поди посчитай все!
Аноним 29/01/17 Вск 00:45:42  329894
>>329369
Видеокарта для такого не подходит из-за сильных задержек и доступа через PCI-E. Сделай софтовый растеризатор с консервативной растеризатором, должно выйти если не годно, то хотя бы забавно..
Аноним 29/01/17 Вск 00:49:10  329895
>>329894
>консервативной растеризацией
Аноним 29/01/17 Вск 16:52:04  331941
>>195958
С пылесоса пишешь?
Аноним 29/01/17 Вск 19:28:06  332397
>>329129
Нормально никак, ведь тебе нужен не только факт столкновения, но и информация о столкнувшихся объектах?

Но через жопу (glReadPixels, occlusion query) можно попробовать:
https://www.opengl.org/discussion_boards/showthread.php/180072-Pixel-perfect-collision
http://stackoverflow.com/questions/16416955/2d-pixel-perfect-collision-detection-with-opengl

Еще можно попробовать рендерить в текстуру, которую одновременно использовать в качестве семплера, как-то кодируя в фрагметнах пересекающиеся спрайты, но разработчики стандарта говорят, что так делают только мудаки и поведение будет непредсказуемым:
https://www.khronos.org/opengl/wiki/GLSL_:_common_mistakes#Sampling_and_Rendering_to_the_Same_Texture
Аноним 29/01/17 Вск 19:57:54  332515
>>327904
если setSwapInterval(1), и SwapBuffers() ждет двух событий: когда закончится рендер и затем v-blank-сигнала, пока эти события не произойдут поток заблокирован.

> То есть приём и обработка событий, нужно производить в других потоках.
Если нужно управление, пока рендер тупит, да, нужно всю параллельную обработку выносить в параллельный поток.

Вот тут чувак придумал костыль, с использованием glDeleteSync, нахуя не знаю, но может пригодится.
http://stackoverflow.com/questions/5829881/avoid-waiting-on-swapbuffers
Аноним 29/01/17 Вск 20:19:39  332664
>>318170
> GL.Begin(PrimitiveType.Lines);
Забудь. OpenGL 4.0 Core Profile + GLSL - это твоя дорога.

> Для этого я прохожу в цикле по всем тайлам и каждый накладываю, как текстуру
Текстурные атласы используй. Это более гибкий способ, карту можно, например, хранить в текстуре: один пиксель - индекс тайла, тайлы отрисовывать на плоскость на лету из атласа. (Кольцо вычетов по модулю - наше все, да)

>Когда я пытаюсь зумить изображение, оно превращается в тыкву, текстуры уродуются и становятся заметны швы между ними.
Не хрена не понял из твоего описания. Просто зумить текстуру ты можешь матрицей в вершинном шейдере, но разумеется, она будет обрезаться / уродоваться (в зависимости от настройки границ) по границам полигона на который ты её натягиваешь. Если ты работаешь с тайлами, зумь полигоны, а текстурные координаты не трогай.

> Мне приходится заниматься неудобными пересчетами координат.
Нахуй не надо ничего пресчитывать (в твоём случае). Умножение в вершинном шейдере геометрии на одну-две (если с вращением) элементарные матрицы выдранные из википедии решат твою проблему. Не забывай, что умножение матриц некоммутативно (некоммутативная группа по умножению, да).

> Хочется рисовать красивые плавные линии
Это отдельная песня. Можно формировать точки для сплайна на Си и рисовать линии шейдером, но что бы они были красивые и плавные точки надо брать опираясь на производные - чем резче изгибы, тем быстрее меняются производные, тем чаще выбираешь точки. Можно хуярить сплайны прям в шейдере, но придется ебашить построцессингом и рендерить во фреймбуффер, да и циклы в шейдере - вещь дорогая.

> Пока все, может потом еще вспомню.
В какой среде хуяришь? Видюха какая?
Аноним 29/01/17 Вск 20:23:13  332685
>>318311
В пиксельном шейдере при отрисовке кота заменяешь условный цвет глаз, на тот который передаёшь снаружи через uniform переменную.

Более нормальный подход: используешь для задания цвета смещение его в спектре в цветовой модели HSV/HSB, нак удобне поменять желтый на зеленый с оттенками. Для обозначения областей можешь использовать альфа-канал, размечая разные области для закраски можешь использовать альфаканал.
Аноним 29/01/17 Вск 20:35:39  332769
>>318627
Первые же ссылки в гоголе:
haskell : https://wiki.haskell.org/OpenGLTutorial1
ruby : http://ruby-opengl.rubyforge.org/tutorial.html

Опять забанили за порнуху?
Аноним 29/01/17 Вск 20:38:35  332790
>>319477
Хуя ты молодец. Еще возмущаешся, что детерминированная машина из-за твоего косяка видишь ли не работает. Охуенчик.
Аноним 29/01/17 Вск 20:40:36  332801
>>319180
Бля. У тебя лог ошибок для того и дан, что бы ты читал, что там написано.
Аноним 31/01/17 Втр 10:21:29  344849
>>329129
Возьми любой физический движок и заюзай библиотеку обнаружения столкновений из него. Для столкновений уже давно придуманы быстрые алгоритмы, не надо изобретать велосипед.
Аноним 31/01/17 Втр 10:49:23  344872
>>333815
Шта?
Аноним 02/02/17 Чтв 17:09:25  356121
>>327502
это воксели?
Аноним 02/02/17 Чтв 18:12:41  356130
>>327502
как вообще сделать такое?
есть какие-нибудь мануалы?
хотя бы что-то примерное?
Аноним 08/02/17 Срд 17:49:11  368929
>>195365 (OP)
Хуй знает, туда ли вкатился, но попробую. Решил попробовать попипасть под ГейОСь на СДЛ, запилил по первому попавшемуся туториалу окошко - а в нем какие-то артефакты, и хуй знает, нормально ли это и как их убрать. SDL_RenderClear пробовал, не помогает.
Что я делаю не так?
Аноним 08/02/17 Срд 19:19:11  369010
>>368929
Где код?
Аноним 08/02/17 Срд 19:50:59  369036
>>368929
> ГейОСь
Кек, удачи тебе, надюсь не амд под капотом.
Аноним 08/02/17 Срд 20:01:58  369043
>>369036
Такс-такс, у меня прошка 2011 года, там таки АМД. Ты же не будешь мне намекать на ЗАПЕКАНКУ? В играх-то все нормально.

>>369010
Отсюда:
http://lazyfoo.net/tutorials/SDL/02_getting_an_image_on_the_screen/index.php
Аноним 08/02/17 Срд 21:36:39  369110
>>369043
> Отсюда
Потом выше ты привёл функцию SDL_RenderClear
Эта функцию из SDL2, а ты даёшь ссылку на урок по SDL1
Зачем?
Аноним 10/02/17 Птн 04:04:11  370572
why.jpg (22Кб, 510x264)
Зачем вам опенгл? Это же графический ассемблер сука.
Сука движкопейсатели.
Аноним 10/02/17 Птн 04:29:34  370584
>>370572
Почему ты решил, что опенгл используется только в игростроении?
Аноним 10/02/17 Птн 13:43:24  371053
>>370584
Я про гры ни слова не написал.
В любых других областях используют движки. Или ты думаешь что NASA отрисовывает треугольники и изучает GL_BLENDы, бесконечными списки ARB констант и всякое говно вида glEnable glDisable.
Аноним 10/02/17 Птн 14:26:56  371127
>>371053
> Я про гры ни слова не написал.
> /gd/
> движкописатели
Да, наверное, ты говорил про аэродинамику.
Аноним 10/02/17 Птн 14:54:14  371148
OpenGL в /gd не нужен.
</thread>
Аноним 10/02/17 Птн 18:38:00  371291
>>369110
>>368929
Немного разобрался. Теперь я умею выводить квадратики, менять цвета и считывать ввод с клавиатуры/мыши. Сейчас буду разбираться с рендерингом шрифтов и png. Ву-ху!
Аноним 10/02/17 Птн 18:41:47  371293
>>371291
Бери сразу какой-нибудь ImageMagic или DevIL и проблем знать не будешь, как с каким-нибудь libpng.
Аноним 10/02/17 Птн 18:44:14  371296
>>371293
stb_image
Аноним 10/02/17 Птн 18:59:48  371311
>>371296
Я этот хедер глянул, ебать они его на 7 тыщ строк развели...
Аноним 10/02/17 Птн 19:12:29  371316
>>371053
>В любых других областях используют движки.
Движок сам себя не напишет
Аноним 10/02/17 Птн 19:23:55  371334
Кто-нить парсил форматы PMD/PMX?
У меня взлетело. Сейчас подпиливаю к ним Bullet
Аноним 10/02/17 Птн 22:14:36  371429
>>371293
Хорошо, для шрифтов - FreeType.
Аноним 11/02/17 Суб 20:55:13  372709
>>371429
>FreeType
В нём метода нарисовать_заебись(строку), рисует он исключительно по буквам, а потом эти буквы ещё и в слова собрать нужно будет. Это только кажется тривиальным, пока не знаешь, что такое кернинг и лигатуры (а если ещё захочешь для жирного саудовского рынка что-то напедалить - тогда вообще можно будет повеситься с арабским письмом).
Короче, использовать нужно harfbuzz.
Аноним 11/02/17 Суб 22:47:12  372780
>>371429
>Хорошо, для шрифтов - FreeType.
Нахуя этого монстра тащить? Для всего хватает stb_truetype, да и свой рендер навелосипедить - дело пары недель.
Аноним 11/02/17 Суб 23:39:53  372802
>>371429
>>372780
зочем штифты?
Аноним 12/02/17 Вск 00:35:34  372872
>>372802
Сделать консоль как в квейке.
Аноним 13/02/17 Пнд 11:01:09  375483
как мне проверить в fragment shader, что я НЕ передаю текстуру?

uniform sampler2D texture;
main()
{
if(texture == ???)
.......

чтобы переключить подсветку. Какие там значения возможны-то?
Аноним 13/02/17 Пнд 11:23:25  375513
>>375483
cykablat

http://stackoverflow.com/questions/24841612/how-to-check-if-a-sampler-is-null-in-glsl
Аноним 13/02/17 Пнд 14:25:43  375644
>>375483
Лучше опиши что ты именно хочешь.
Аноним 13/02/17 Пнд 17:46:24  375911
>>375644
Спасибо за предложение. Проблема вот какая была:
кручу через шейдер, если текстурки не передаю, то всё чорное.
Нужно было, что при отсутствии текстур, fragment shader считал хотя бы то нормалям отражённый свет.
Решением было (как советовали на ссылке), делать вкл/выкл через uniform

Сделал вот так:

uniform float no_tex;

void main()
{
//
if(no_tex == 0.0)
{
ct = vec3(1.0, 1.0, 1.0); // fiat lux cykablat!
at = 1.0;
}
else
{
ct = texel.rgb; // from the texture
at = texel.a;
}

gl_FragColor = vec4(ct cf, at af);

}
Аноним 13/02/17 Пнд 18:00:34  375925
>>375911
Не проще биндить текстуру из белого пикселя по умолчанию?
Аноним 13/02/17 Пнд 18:19:24  375943
>>375925
это для меня сейчас временная мера, пока не разобрался, как решено с текстурами у второй модели.
Первая - PMD, вторая - PMX. Но японец, написавший парсер, сваял два класса с несовместимыми по духу структурами данных.
Поэтому во второй ещё ничего не биндится совсем.

Вообще у меня такое чувство, что моя прога - куча из OpenGL версий от 1 до 3.1. Эти говна ещё раскидать надо будет
Аноним 14/02/17 Втр 04:11:47  376832
>>375943
Текстуру тебе надо всегда передавать во фрагментный шейдер.
Если, например, хочешь отключить отображение текстур на мешах моделях либо делай отдельный шейдер либо передавай прозрачную текстуру.

> Вообще у меня такое чувство, что моя прога - куча из OpenGL версий от 1 до 3.1. Эти говна ещё раскидать надо будет

Лучше пиши сразу на 3,3+ версии
Аноним 14/02/17 Втр 08:32:16  377509
>>376832
>Текстуру тебе надо всегда передавать во фрагментный шейдер
туда и передаю

>Лучше пиши сразу на 3,3+ версии
какая альтернатива для gluSphere, gluCylinder и т.д.
Аноним 14/02/17 Втр 08:50:13  377568
>>377509
> какая альтернатива для
Написать самому или читать какой-нибудь .obj файл.
Аноним 14/02/17 Втр 19:52:28  378116
Есть одна задача, к которой я никак не могу найти решение. Помоги мне, анон?

У меня есть необходимость рендерить в 3д пространстве большое количество плоских поверхностей с составным содержимым. Можно воспринимать это как карточки, они могут состоять из большого количества слоев - фон, рамка, текст, элементы декора. Порядок слоев определен. Плоскости могут быть повернуты в пространстве.

Я не могу рендерить каждую вариацию в свою текстуру (или в одну мегатекстуру), на это уйдет вся память, их может быть около 1000 разных и каждая должна иметь разрешение в районе 1000х1000х32бпп, а это уже 4гб. Я хочу найти способ как мне эффективно рендерить слоеные плоскости в трехмерном пространстве. Может быть есть известные решения? Можно, наверное, их постоянно сортировать и рисовать без z-буфера, но я не знаю насколько это эффективно (учитывая что они довольно часто перемещаются в пространстве, хотя камера в основном неподвижна).
Аноним 14/02/17 Втр 20:12:41  378149
>>378116
> плоских поверхностей с составным содержимым. Можно воспринимать это как карточки
Что это значит?
Аноним 14/02/17 Втр 20:23:28  378154
>>195365 (OP)
Анон, у меня вопрос простой.
Как посчитать матрицу вида?
Работающую камеру брал отсюда: https://code.google.com/archive/p/gl33lessons/
А там она на матрицах, а не на векторах.
Как ты себя реализовывал эту матрицу?
Аноним 14/02/17 Втр 20:50:52  378164
>>378154
https://www.youtube.com/watch?v=nLnqnB4QU-4&index=51&list=PL0AB023E769342AFE

классные тьюториалы у него
заль, что уже года 3 не появлялся...
Аноним 14/02/17 Втр 21:42:42  378242
>>378149
Ну смотри, у тебя есть карточка. У нее есть рамка, рисунок, подпись. Все это в каком-то лэйауте лежит на плоском кваде. Вот лэйаут задается набором квадов, лежащих в одной плоскости. У каждого лэйаута свои размеры и своя текстура.
Это как слои в фотошопе, только разного размера, а не каждый слой по размеру листа.
Аноним 14/02/17 Втр 21:44:43  378248
>>378242
>У каждого квада свои размеры и своя текстура.
фикс
Аноним 14/02/17 Втр 22:15:15  378288
>>378242
Ну сами текстуры можешь хранить в GL_TEXTURE2D, а в GL_TEXTURE2D_ARRAY.
А при помощи инстансинга рисовать свои плоскости.
Аноним 15/02/17 Срд 08:50:07  378849
>>378288
Но квады лежат в одной плоскости, там будет z-tearing, если включить z-buffer. А если выключить, то придется на каждое движение все сортировать.
Аноним 15/02/17 Срд 08:56:27  378852
>>378849
>z-tearing
Z-fighting конечно
Аноним 16/02/17 Чтв 04:34:47  380840
>>378849
Рисуй тогда с небольшим отступом в несколько пикселей.
Аноним 16/02/17 Чтв 08:31:27  380853
>>380840
Это костыли. Если объект будет достаточно далеко от камеры, проекционная матрица съест всю точность и будет тот же z-fighting. А если делать отступы с рассчетом на дальность, то при приближении они будут слишком большими.
Аноним 16/02/17 Чтв 09:30:37  380857
>>380853
Значит используй рендер в текстуру.
Аноним 16/02/17 Чтв 09:55:13  380858
>>380857
Я уже писал что это займет слишком много памяти. Такие тривиальные решения я и сам рассматривал, я ищу что-то более глубокое.
Аноним 16/02/17 Чтв 10:01:47  380860
>>380858
Ты код написал?
Проверил как оно работает?
Аноним 16/02/17 Чтв 10:15:37  380862
>>380858
Рендери свои квады тогда на определённом расстоянии друг от друга и мастурбируй.
Чем ближе квад к камере тем он меньше.
И если смотреть под определённым углом то будет казаться, что они все в 1 плоскости.
Аноним 16/02/17 Чтв 10:17:19  380863
>>380860
Я считать умею.
Аноним 16/02/17 Чтв 10:18:42  380864
>>380862
> мастурбируй
Блять, масштабируй.
Лол
Аноним 16/02/17 Чтв 10:25:34  380865
>>380862
>>380864
Лол, по Фрейду.
Да, тоже об этом думал. Ладно, начну с этого, а там посмотрим. Спасибо.
Аноним 16/02/17 Чтв 12:21:45  380879
>>380853
>проекционная матрица съест всю точность и будет тот же z-fighting
http://outerra.blogspot.ru/2012/11/maximizing-depth-buffer-range-and.html
Аноним 16/02/17 Чтв 20:34:50  380966
>>378116
https://habrahabr.ru/company/mailru/blog/248873/
Reversed Depth Buffer
Аноним 17/02/17 Птн 10:24:14  381077
Почему вы изучаете OpenGL, а не DirectX?
Аноним 20/02/17 Пнд 16:34:37  381764
Vertex Array Objects вообще ещё актуальны?
Аноним 20/02/17 Пнд 16:47:54  381768
>>381764
Без них ничего не нарирсуешь.
Сам-то как думаешь?
Аноним 20/02/17 Пнд 17:02:42  381775
>>381768
Ну, можно и VBO мацать. Я про то спрашивал, не перданут ли их из стандарта, продумав замену.

О своей махарайке: парсю японские PMD/PMX. Как и везде, материалы и прилежащие текстурки относятся к отдельным частям модельки.
То есть для рисовки прокручиваю список материалов, для каждого ставлю свет, альфу, текстуры. Эта часть выглядит как из прошлого века при том, что вершинки с нормальками рисуются через VBO/VAO.

У всех с материалами/текстурами такая же фигня (ручками блеат) или я делаю через жёпу?
Аноним 20/02/17 Пнд 17:06:51  381776
>>381775
Мне кажется ты не очень понимаешь что делаешь и что за что отвечает.
Аноним 20/02/17 Пнд 17:20:31  381778
Screenshot1.jpg (161Кб, 1309x597)
Screenshot2.jpg (39Кб, 749x267)
VAO запоминает порядок вызова glBindBuffer, glVertexAttribPointer(), glEnableVertexAttribArray(), glBindBuffer()
То есть помогает с вершинами, нормалями, цветами. Текстуры и материалы как бы этим методом не покрываются. Их ручками.

Аноним 21/02/17 Втр 15:02:35  382015
>>381775
>Я про то спрашивал, не перданут ли их из стандарта, продумав замену.
Ты собираешься делать свою игру дольше 20 лет?
Аноним 21/02/17 Втр 18:06:13  382059
Кстати, анончики, такой вот вопрос. В GL4.5 добавили вкуснях с именованными хранилищами и прочими именованными ништяками, только вот вопрос в том, стоит ли это все использовать, поскольку, неизбежно, на данный момент времени имеются карточки (впрочем, мне кажется, их довольно много), которые этого не поддерживают (скорее всего, карточки то могут, хули там такого, только ленивые производители драйверов клали хуй на это)?
Аноним 22/02/17 Срд 10:02:19  382207
>>382059
В чём профит этих новых фич?
Аноним 22/02/17 Срд 10:10:52  382208
>>382207
В том, что у тебя стейт не глобальный, а локальный.
Аноним 22/02/17 Срд 15:03:39  382298
Ебать вы все тут умные.
Решил вкатиться, но нихуя не знаю. С чего начать?
Аноним 22/02/17 Срд 15:33:57  382306
>>382298
С прочтения ОП-поста пробовал?
Аноним 22/02/17 Срд 15:49:44  382314
>>382298
https://www.youtube.com/watch?v=hQ2I8D2ogrs&list=PLSPw4ASQYyynKPY0I-QFHK0iJTjnvNUys
Аноним 22/02/17 Срд 16:51:51  382333
>>382306
Вот анон подтолкнул меня к одной мысли.
Надо ли при перекате делать подробное шапку?
Не однократно в треде всплывали дауны которые упорно не видят шапки.
Аноним 22/02/17 Срд 19:14:41  382358
>>382059
По факту то ведь, с появления первых игор на вулкане уже прошло более года, и, насколько мне известно, вулкан - новое название для OpenGL Next, то бишь дальше 4.5 версии он не пойдет?
Думаю теперь, а не стоит ли заранее начать изучать новую технологию.
Аноним 24/02/17 Птн 09:41:51  382671
>>382358
Vulkan пока что не имеет костылей, в отличие от OpenGL. Но, видится мне, с развитием технологий он, как и GL, неизбежно их приобретет. А сам OpenGL забрасывать не планировали. Его будут саппортить еще лет 20 как минимум.
Аноним 27/02/17 Пнд 17:03:14  384597
>>382333
Видел шапку, но в ней мало конкретики, порог вхождения довольно высокий. Извините если грубо ворвался в тред, просто заметил дружественную атмосферу треда и попросил пояснить по хардкору. Разбираюсь в графоне и фичах, сам тридешник, но очень хочется получить знания богов индустрии, благодаря которым мы, холопы тут без сарказма существуем.

Аноним 27/02/17 Пнд 17:37:54  384606
>>384597
> но в ней мало конкретики, порог вхождения довольно высокий
Поясни что значит "мало конкретики" и "порог вхождения довольно высокий".
Аноним 27/02/17 Пнд 18:12:03  384611
>>384597
Блджад, в шапке первая же ссылка в разделе туториалов:
http://www.learnopengl.com/
Всё разжевано и положено в рот. Куда уж ещё проще-то?
Аноним 04/03/17 Суб 15:12:56  386268
>>195365 (OP)
Здорова, бандиты. Не совсем по теме, но посоветуйте какую-нибудь годную либу для звука, чтобы поддерживала максимальное количество платформ, была без LGPL-параши в лицензии и поддерживала статическую линковку.
Аноним 04/03/17 Суб 22:04:02  386405
>>386268
Пиздец ты пидарас, а.
Аноним 05/03/17 Вск 11:26:25  386550
>>386405
Что такое?
Аноним 05/03/17 Вск 13:02:54  386564
>>386550
Сам-то как думаешь?
Аноним 05/03/17 Вск 21:26:21  386730
>>386564
Не знаю. Ты чего такой злой?
Аноним 06/03/17 Пнд 12:17:42  386917
>>386268
SDL?
Аноним 08/03/17 Срд 14:53:28  387453
>>386268
PortAudio
Аноним 08/03/17 Срд 19:26:35  387521
Ананасы, я тут слышал, что уже давненько SDL завезли под мобильные платформы, а это значит, что можно говнокодить и под ведроидом, я так понимаю. Есть какие костыли известные?
Кокос2д не хочу, потому что пошел он нахуй, вот почему (а на самом деле у него кучка довольно неприятных и я даже сказал бы ебаненьких багов)
Аноним 09/03/17 Чтв 04:11:47  387630
>>387453
Похоже, на то, что нужно.

>>371291
А я продолжаю пилить свой 2D-движок. Для PNG сначала писал свой костыль, но потом нашел отличную маленькую либу upng с хорошей лицензией - и встроил ее. Запилил биндинги для Lua, пишу документацию. Может, когда-нибудь и на гитхаб выложу.
Аноним 09/03/17 Чтв 04:45:57  387631
>>387630
stb_image в помощь.
Аноним 09/03/17 Чтв 12:19:53  387698
>>387631
Да я хочу по-минимуму чужие библиотеки в проект таскать, я даже от zlib отказался.
Аноним 09/03/17 Чтв 13:06:58  387703
>>387698
Вот именно поэтому и stb_image. Оно легче и компактнее upng, и лицензия "делайте что хотите, мне похуй".
Аноним 09/03/17 Чтв 17:59:15  387768
>>387703
>>387631
Хм, вижу, что там и рендеринг шрифтов есть. Призадумался.
Аноним 10/03/17 Птн 02:54:58  387885
>>387768
sdl_ttf
Аноним 11/03/17 Суб 03:25:16  388208
>>387768
>>387703
Да, stb_image явно лучше upng - поддержка куча форматов и плюх вроде интерлейсинга. Разве что собирается долго - аж целых две секунды. Есть вопрос по блендингу - появилась какая-то непонятная для меня вещь:
Сначала включаю glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA), рендерю свет. Потом - glBlendFunc(GL_DST_COLOR, GL_ONE_MINUS_SRC_ALPHA) и рендерю соника - но вокруг него вдруг появляется какая-то левая рамка, причем разная для разных изображений.
Знаю, что двухмерный свет надо делать по-другому - сначала рендерятся предметы, затем отдельный черный фреймбуфер для сплошной тени, потом из него вырезаются кружки света, и уже потом он рендерится поверх всего остального. Но все равно интересно, отчего такое происходит.
Хоть в какую сторону копать?
Аноним 13/03/17 Пнд 20:35:03  389113
Как загрузить текстуру так, чтобы загружать не из отдельного файла, а из кода? То есть я напишу хекс код картинки и она будет загружена в текстуру? как это сделать?
Аноним 13/03/17 Пнд 21:21:30  389122
>>389113
массив под текстуру просто в коде заведи и всё
Аноним 13/03/17 Пнд 22:08:05  389132
Из PBO можно не скопировать, а перенести данные в текстуру?
Аноним 14/03/17 Втр 00:24:21  389177
>>389113
Передавай массив в glTexSubImage или как там эта функция называется.
Аноним 14/03/17 Втр 07:24:14  389209
>>387521
Двачую вопрос.
Аноним 14/03/17 Втр 11:46:27  389242
son.gif (85Кб, 480x600)
>>387521
SDL увы и не под каждым линухом работает (Mint, например).
Для верда компилировать сурс.
Аноним 14/03/17 Втр 13:52:47  389267
>>389242
Не проблема, в общем-то, главное, чтобы зашло.
Аноним 14/03/17 Втр 15:24:30  389308
>>387768
>Хм, вижу, что там и рендеринг шрифтов есть
Неужели рисовать текст так сложно? Велосипедный SDF рендер текста пишеться за пару дней. За неделю можно написать лейаут для рич текста.
Аноним 14/03/17 Втр 18:00:18  389346
>>389308
Но зачем? Велосипеды велосипедами, но зачем решать задачу, которая была тысячу раз решена для тебя и существуют проверенные, вылизанные до мелочей решения, лучше которых ты всё равно не сделаешь?
Аноним 14/03/17 Втр 18:12:35  389352
>>389346
>которая была тысячу раз решена
С чего ты взял, что она решена? До сих пор нет нормального способа векторную графику рисовать целиком на видяхе. С текстом такая же хрень.
Аноним 14/03/17 Втр 18:43:31  389372
>>389346
>существуют проверенные, вылизанные до мелочей решения
Которые тянут тысячи зависимостей и которые ты заебешься собирать под нужные платформы.
Аноним 14/03/17 Втр 19:03:28  389389
>>389352
>До сих пор нет нормального способа векторную графику рисовать целиком на видяхе.
Настало время прохладных историй.
Приятно, наверное, ощущать себя дебилом, сидя в треде про OpenGL и утверждая, что нет способов рисовать векторную графику на видяхе?
>>389372
У того же stb_truetype 0(ноль, нуль, зеро, О с черточкой, нисколько, ни одного, отсутствуют) зависимостей, кроме CRT(но блеать мы не на ассемблере пишем, чтобы зависимостей от CRT не было).
Аноним 14/03/17 Втр 19:23:50  389403
>>389389
>нет способов рисовать векторную графику на видяхе?
Представь себе, именно так дело и обстоит. На мобилках есть OpenVG, на десктопе решения у отдельных вендоров вроде NV_path_rendering, а нормальной (корректно рисующей) полностью ускоренной либы для графики до сих пор нет. Skia, например, частично на проце все рисует, direct2d - тоже.
Аноним 14/03/17 Втр 19:29:40  389407
>>389389
> stb_truetype
> вылизанные до мелочей решения
Там такой же велосипедный рендер на коленке, причем тормозной и кривоватый. Она вполне может неправильно рассчитать геометрию для какого-нибудь хитрожопого глифа и нарисовать тебе сегфолт или тихо насрать в память.
Аноним 14/03/17 Втр 23:15:13  389495
coordinates.jpg (26Кб, 400x265)
Подскажите, пожалуйста, кто знает.
Раньше в OpenGL можно было рисовать, используя не float, а integer-координаты. Тогда они означали пикселы. Сейчас, с приходом разных шейдеров, функции вроде glVertex2i устарели, не так ли (теперь, DrawElements и проч.)? Какой наилучший способ рисовать 2D в пиксельных координатах сейчас?
Насколько я понял, что бы я не передавал в вертексный шейдер, gl_position всегда ждёт флоаты в формате vec4.
Аноним 14/03/17 Втр 23:44:55  389499
Я спрашиваю просто из-за такой проблемы, что когда масштабирую окно, картинка на мгновение растягивается (особенно заметно в верхней части окна), а только потом перерисовывается правильно. Потом попробую сделать как тут ОП пишет - вызывать swapBuffers не после рендера, а до glViewport. https://groups.google.com/forum/#!topic/angleproject/RvyVkjRCQGU
Аноним 15/03/17 Срд 00:09:21  389506
>>389499
Целочисленные координаты тебе не тут точно не помогут. Артефакты скорее всего от оконного менеджера идут, а не от того, как ты рендеришь.
Аноним 15/03/17 Срд 00:17:11  389507
>>389506
Возможно мою проблему решит замена glfwGetFramebufferSize на glfwSetFramebufferSizeCallback(window, framebuffer_size_callback);

И как в примере с сайта GLFW:

void framebuffer_size_callback(GLFWwindow* window, int width, int height)
{
glViewport(0, 0, width, height);
}

Попробую, наверно, завтра, если время будет.
Аноним 15/03/17 Срд 00:32:08  389512
Безымянный.png (34Кб, 1378x570)
Возможно непонятно объяснил. На всякий случай, вот картинка. Вот хелловорлд:
https://github.com/georgy7/dtype/blob/97c9bcd66236ecdd91b6941ccae20a4669f21969/examples/base/abstract_app.d
https://github.com/georgy7/dtype/blob/97c9bcd66236ecdd91b6941ccae20a4669f21969/examples/blank1_rectangle.d
Иначе о чём без кода говорить.
Аноним 15/03/17 Срд 01:23:56  389527
>>389512
Там проблема ниже, чем glfw. Где-то в wgl/xgl. Отрисовка окна происходит быстрее, чем изменение размера контекста, из-за этого и артефакты. Обычно на это все забивают, все равно через кадр все устаканивается.
Аноним 15/03/17 Срд 14:01:51  389654
>>389132
Бамп воросу. После анлока буффера можно сказать драйверу что у меня там текстура, а не гонять данные туда-сюда по VRAMу?
Аноним 15/03/17 Срд 15:19:28  389667
>>389654
Не вникал особо в текст, но походу то, что тебе надо.
http://www.songho.ca/opengl/gl_pbo.html

>// copy pixels from PBO to texture object
>// Use offset instead of ponter.
>glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, WIDTH, HEIGHT, GL_BGRA, GL_UNSIGNED_BYTE, 0);
Аноним 15/03/17 Срд 15:23:19  389668
>>389654
>>389667
Перечитал вопрос и понял что это не то, что тебе надо. Так, как ты хочешь, сделать нельзя, PBO и текстура это слишком разные вещи, чтобы быть взаимозаменяемыми. Там данные хранятся в разных форматах.
Аноним 15/03/17 Срд 16:34:14  389697
>>389668
PBO и прочая шняга это условности. Нужно замапить видеопамять и перегнать из системной все что нужно в любом формате. А так получается лишний оверхед на копирование. Надеюсь в Вулкане такой хуйни нет.
Аноним 15/03/17 Срд 21:49:55  389766
>>389697
Надейся.
Первое что тебе придется делать в вулкане, елси ты хочешь использовать физическую память на видеокарте, - это самому перегонять кучу данных сначала в область памяти API (та же оперативка, только ОСОБЕННАЯ), а уже потом удаленными командами для видяхи коипровать их в видеопамять.
Аноним 16/03/17 Чтв 09:36:18  389855
Решил проблему перепроверкой после рендера и, если поменялся размер, перерендером кадра.
https://github.com/georgy7/dtype/commit/727bba4419c38f1646c4de227d80d84bb1bfbb56#diff-211c4ecbe22099ab129604fde1df4b2c
>>389512-кун
Аноним 17/03/17 Птн 16:06:21  390377
a.JPG (47Кб, 1102x330)
b.JPG (18Кб, 493x793)
c.JPG (24Кб, 495x797)
d.png (0Кб, 52x5)
Почему не получается наложить текстуру? Она накладывается как попало (2). И вверху блоки должны быть другого цвета (3). Текстура (4).
Код: http://pastebin.com/iZQuARGw
Аноним 17/03/17 Птн 18:29:51  390462
>>390377
Потому что учи шейдеры, вот почему
Аноним 18/03/17 Суб 04:26:19  390631
.png (6Кб, 520x520)
>>390377
Во-первых, нахуй старьё.
Во-вторых, ты проебался с текстурными координатами.
Аноним 18/03/17 Суб 17:26:04  390741
>>195365 (OP)
Я хотел задать вопрос, но сам нашёл ответ. Нельзя between glBegin i glEnd
Аноним 19/03/17 Вск 18:06:14  391175
>>195365 (OP)
Почему Опенгл такой ебанутый?
Аноним 19/03/17 Вск 18:18:14  391177
>>391175
Ты имел в виду "почему в мире есть что-то сложнее 1+1"?
Аноним 19/03/17 Вск 19:16:43  391186
>>391177
Нет, почему в Опенгле такая ебанутая система координат? Впрочем это наверное моя оплошность, ведь я его пытаюсь использовать для создания 2D игры. А сам опенгл очень лёгок. Я SDL не осилил, на простом WinAPI жуткие тормоза, а Опенгл легче всего этого дерьма. Но другие библиотеки для создания 2D игры я не нашёл.
Аноним 19/03/17 Вск 21:29:09  391230
>>391186
>такая ебанутая система координат?
Почему ебанутая? Как в математике: если х вправо, то у - вверх, x cross y = z, y cross z = x, z cross x = y. Все строго и логично. Плюс матрицы в памяти лежат по столбцам, что гораздо удобнее - можно сразу с векторами базиса работать.
Аноним 20/03/17 Пнд 10:58:31  391334
>>391186
Так SDL это обертка над opengl & directx. Он же наоборот упрощает разработку. Как он может быть сложнее, или я что-то не понимаю?
Аноним 21/03/17 Втр 09:27:45  391478
как нарисовать тестуру с помощью примитивов? С# openTK
Аноним 21/03/17 Втр 09:39:27  391482
>>391478
два треугольника
Аноним 21/03/17 Втр 11:02:13  391487
>>391482
>два треугольника
хорошо. спрошу подробнее.
мне нужно нарисовать изображение с помощью примитивов и использовать его потом, как текстуру.
очевидные ответы вроде "используй fbo " мне не помогут. я не очень хорошо умею в жл.
Аноним 21/03/17 Втр 16:47:50  391558
>>391487
напиши хук, который скриншоты делает.
Аноним 21/03/17 Втр 17:03:16  391562
Хочу войти в OpenGL. Где туториалы по последним версиями на Си? Доставь годноты, Анон.
Аноним 21/03/17 Втр 17:04:40  391563
>>391562
> Где туториалы
Где найти туториалы
fix
Аноним 21/03/17 Втр 17:46:49  391573
>>391562
https://github.com/glcoder/gl33lessons
http://www.openglsuperbible.com/
Аноним 21/03/17 Втр 17:54:15  391578
>>391573
Это же всё кресы. А в первой ссылке ещё и винда, упаси боже.
Алсо, третья версия разве не устаревшая? Сейчас же 4.5 есть.
Аноним 21/03/17 Втр 21:55:31  391622
>>391578
Ещё один даун.
Откуда вы лезите?
Аноним 24/03/17 Птн 11:25:15  392236
motionblur-scre[...].jpg (182Кб, 1286x758)
Хелоу аноны. Мне нужно размыть модельку. Всю сцену я могу розмыть, это не проблема. Мне нужно размыть только одну модель, и при этом только видимую ее часть если ее что-то заслоняет. Как в FBO забрать только видимую часть модели в данный момент? Я придумал конечено же какую-то хуйню не производительную, забирать сцену с моделью и без а потом находить разницу и размывать ее, но я думаю что это херово два раза рендерить в FBO. Как это нормальные люди делают?
Аноним 24/03/17 Птн 13:04:22  392264
>>391622
Весеннее обострение, похоже.
Аноним 24/03/17 Птн 13:24:54  392271
>>392236
Попробуй рисовать модель с записью в стенсил, а потом обычный screen space motion blur с тестом.
Аноним 24/03/17 Птн 14:01:42  392283
Сниafdмок.PNG (29Кб, 485x281)
Здрасьте. Есть вопрос по поводу, как сформировать текстуру в виде массива с данными, не используя при этом отдельный bmp/jpg-файл в идеале, ссылку на лит-ру/мануал-пример.
Смысл в том, что формируется два (на самом деле нужен один) массива, в одном даны числовые значения (values), во втором - им соответствующие параметры цвета (colors).
В текущем варианте использую готовый способ считывания файла с jpg-текстурой (готовая цветовая шкала) из библиотеки FreeImage, но это не то, нужна возможность динамического изменения её (шкалы) свойств что-то типа bitmap без файла, отдаленно

Один из шейдеров (пиксельный):
varying float VinL1L2;
uniform float umin;
uniform float umax;
uniform sampler2D texture_sampler;
void main() {
float u = VinL1L2;
vec2 tc;
tc[0]=0.9;tc[1]=0.5;
if(u<umax)
{
tc[0]=(u-umin)/(umax-umin);
gl_FragColor = texture2D(texture_sampler, tc);
}
}
Аноним 24/03/17 Птн 14:25:12  392286
>>392271
Блин, спасибо большое, это то что нужно. Я чет проморгал stncil buffer, впервые узнал а нагуглить раньше чет не получалось.
Аноним 24/03/17 Птн 15:49:02  392303
>>392283
Не понял что ты имеешь ввиду, но просто запиши в массив RGB данные и в функции создания текстуры указывай на этот массив.
Аноним 24/03/17 Птн 15:56:10  392304
>>392283
Texture buffer object
Аноним 25/03/17 Суб 16:50:08  392589
>>392303
Ну то есть мне надо засунуть массив, задаваемый в проге, из 128 RGB цветов, своих, не используя для этого файлов и сторонних библиотек.
>>392304
Надеюсь поможет
Аноним 26/03/17 Вск 12:56:49  392717
>>391622
Ладно, извини, я не разобрался.

Сейчас дошёл до матриц, хочу крутить треугольник. Везде для этого предлагают библиотеку GLM, но работает ли она под Си? На википедии написано, что это для C++, в 3.5 статей всё на C++, у неё заголовки .hpp, я не могу скомпилять прогу с ней, gcc ругается. То есть только кресты? Есть ещё какие-то библиотеки? Я бы не хотел велосипедить всё это дело, я хочу трудэ писать.
Аноним 26/03/17 Вск 14:58:21  392727
>>392717
> Я бы не хотел велосипедить всё это дело
> хочет писать на Си
Ты болен шизофренией?
Аноним 26/03/17 Вск 15:02:11  392728
>>392727
Почему Си == велосипеды в сравнении с плюсами?
Аноним 26/03/17 Вск 19:21:54  392739
Если разобраться в OpenGL, то с остальными технологиями Chronos особенно WebGL тоже всё понятно будет?
Аноним 27/03/17 Пнд 12:16:31  392797
>>392728
Ты говноед и не понял ещё, что кресты - ужасающее дерьмо.
Аноним 27/03/17 Пнд 13:38:34  392810
>>392717
У GLM же вроде была си-версия?
Впрочем, хуй с тобой, идейные пидарасы, не понимающие сути идеи, за которую борцуют, должны страдать.
Аноним 27/03/17 Пнд 13:42:26  392811
>>392810
Я просто пишу на том, на чём мне удобно писать, иди на хуй.
Аноним 27/03/17 Пнд 14:56:57  392822
>>392811
Если ты не можешь добавить одну строчку в код и набрать три символа в консоли - то ты таки идейный пидарас, так что продолжай сосать.
Аноним 27/03/17 Пнд 15:01:40  392823
>>392822
О чём ты говоришь? О glm? Ну расскажи мне как что-то скомпилять с ним сишным компилятором. Если нет, то выражайся яснее.
Аноним 27/03/17 Пнд 15:21:48  392827
Я о g++ блядь. Но ты же идейный, тебе ДРЕВНИЕ БОГИ ПОГРОМРОВАНИЯ ЗОПРЕТИЛИ ИСПОЛЬЗОВАТЬ!!!
Аноним 27/03/17 Пнд 15:40:37  392836
>>392827
Это сойдёт как временное решение. Сишная библиотека в любом случае нужна.
Аноним 27/03/17 Пнд 17:29:05  392854
>>392836
Блять, у возьми и напиши сам тогда.
От написания пары десятков функций ещё никому не было плохо.
Аноним 27/03/17 Пнд 17:32:58  392856
>>392854
Я не разбираюсь в этом.
Аноним 27/03/17 Пнд 17:55:17  392859
>>392856
Тогда бери готовое, проверенное, и оптимизированное(вплоть до поддержки всех simd) решение, и не выёбывайся.
Аноним 27/03/17 Пнд 18:18:53  392867
>>392304
Да, прокатило, спасибо. Однако не нравится формат "текстурных координат" в формате 0-:-127 (допустим цветов 128), вместо 0-:-1, целочисленные, короче. Не совсем уверен, как сделать промежуточный интерполированный цвет, если координата где-то между "пикселями".
Юзал инфу из https://gist.github.com/roxlu/5090067
и частично из http://steps3d.narod.ru/tutorials/draw-instanced-tutorial.html и http://stackoverflow.com/questions/12834058/texturing-using-texelfetch
Аноним 27/03/17 Пнд 18:27:04  392868
>>392867
Фильтрацию текстуры поменяй на линейную, тогда он тебе все сам интерполирует.
Аноним 27/03/17 Пнд 18:31:26  392869
>>392868
В шейдере нельзя в texelFetch задавать вещественный тип. Я конечно могу сам смешивать цвета, например, если координата 98,3, то взять координату 98 и тупо прибавить к каждой rgb-составляющей 30% от разницы между цветом[99] и цветом[98].
Просто не хочу лишний раз нагружать шейдеры еще и этим (хотя если сделать это в вершинном, то вроде сильно не скажется).
Аноним 27/03/17 Пнд 18:36:31  392871
>>392717
>Я бы не хотел велосипедить всё это дело, я хочу трудэ писать
Написать базовую либу для векторов/матриц - дело пары дней. Заодно и разберешься что там к чему. Хинт: инверсия матрицы 4х4 общего вида требуется в 0.0001% случаев.
Аноним 27/03/17 Пнд 18:37:11  392872
>>392867
> Однако не нравится формат "текстурных координат" в формате 0-:-127 (допустим цветов 128), вместо 0-:-1, целочисленные, короче.
В смысле? Можно попробовать упаковывать во float16 координаты.
Аноним 27/03/17 Пнд 18:39:23  392874
>>392869
>texelFetch
texture2D тебе религия запрещает использовать?
Аноним 27/03/17 Пнд 18:46:00  392878
>>392869
Ну texelFetch для дискретных и быстрых выборок используется. Я не думаю, что твоя линейная интерполяция будет работать быстрее, чем встроенная.
Аноним 27/03/17 Пнд 19:02:04  392885
>>392871
Да мне бы с самим opengl сначала разобраться. А то два дня пердолился а понял ровным счётом нихуя. Сейчас всё переписал, вдумчиво, и чёто-както дошло до головы-то моей, но захотелось мне камеру повращать, а тут матрицы, бляяяя пиздеееец, сложно. И вот сейчас я кажись понял суть ШОК КАМЕРА НЕ ДВИГАЕТСЯ ЭТО ПРОСТРАНСТВО ВОКРУГ МЕНЯЕТСЯ, и надо бы воплотить всё в жизнь закрепив знания, а ты предлагаешь мне на написание своей либы отвлечься. Нельзя так делать, нельзя отвлекаться.
Аноним 27/03/17 Пнд 19:10:34  392888
>>392885
>а тут матрицы, бляяяя пиздеееец, сложно
Если ты матриц не понимаешь, то за трехмерку можешь даже не браться.
Если не умеешь пользоваться гуглом - тем более:
https://github.com/arkanis/single-header-file-c-libs/blob/master/math_3d.h
Аноним 27/03/17 Пнд 19:15:47  392889
>>392888
> Если ты матриц не понимаешь, то за трехмерку можешь даже не браться.
Ты так говоришь, как будто все с рождения гуру матриц а я особенный. Всё приходит со временем.
Спасибо.
Аноним 27/03/17 Пнд 19:49:14  392895
>>392885
> Да мне бы с самим opengl сначала разобраться.
Блять, да что с тобой такое?
То не нравятся ему туторы на С++, то не нравится ему шинда, то не устраивает версия ГЛа.
Может просто заткнуться и взять готовое, научиться, а потом от этого отталкиваться с понимаем что ты делаешь и к чему это приведёт?
Аноним 27/03/17 Пнд 19:59:42  392898
>>392895
> То не нравятся ему туторы на С++
Я запутаюсь.
> то не нравится ему шинда
Сложно.
> то не устраивает версия ГЛа.
Я не разобрался, о чём уже писал. Извиняюсь за это.

> Может просто заткнуться и взять готовое
Либу уже нашёл, так бы временно использовал glm.
Аноним 27/03/17 Пнд 22:32:20  392918
>>392823
Нахуя ты на Си пишешь, ебанутый?
Аноним 27/03/17 Пнд 23:08:16  392922
>>392918
Что мне могут дать кресты?
Аноним 27/03/17 Пнд 23:42:15  392925
>>392885
Бля, не осиляю камеру. Может кто доставить понятный гайд по ней? Если этот гайд будет на русском, то вообще заебись.
Просто посчитать я посчитаю, а куда дальше просчёты отправлять, что с ними делать, зачем что-то с ними делать, как быть с шейдерами и т.д. непонятно. Помогите, Анончики. Нужно доходчивое объяснение.
Аноним 28/03/17 Втр 00:23:34  392928
>>392922
Кресты? RAII, смартпоинтеры, исключения, стандартную библиотеку (коллекции на шаблонах, треды, файлы, строки, регекспы и т.п.), ООП в конце концов.

А ещё лучше - пиши на джаве, там всё то же, только лучше.
Аноним 28/03/17 Втр 01:58:59  392931
>>392928
>А ещё лучше - пиши на джаве,
Съеби. Просто съеби отсюда.
Аноним 28/03/17 Втр 02:31:30  392933
>>392931
Ты вот сейчас шутки шутишь, а потом для своего ёба-оптимизированного движка на Ши будешь писать логику на каком-нибудь говноскрипте с багами, тормозным рантаймом, ебанутым ГЦ и прочими радостями опенсорса.
Аноним 28/03/17 Втр 02:50:20  392937
why.jpg (80Кб, 960x960)
>>392933
>для своего ёба-оптимизированного движка на Ши будешь писать логику на каком-нибудь говноскрипте
Аноним 28/03/17 Втр 14:32:19  392997
>>392933
Да оставьте человека, пусть сам разберется. Я тоже таким был, прошло, когда знаний больше появилось.
Аноним 28/03/17 Втр 14:55:13  393003
>>392933
Если ты лично настолько дебил, чтобы так делать, это ещё не значит, что все остальные вокруг тебя тоже дебилы и будут делать как ты.
Аноним 28/03/17 Втр 16:46:17  393020
>>392928
То чувство, когда в джаве нет деструкторов...
Пичаль беда, хотя бы на GC деструкторы завязывали бы, а то так, как ни крути, на крестах ресурсами в некоторых случаях управлять гораздо удобнее.
Аноним 29/03/17 Срд 02:15:46  393141
>>393020
Ну как, есть try-with-resource, который позволяет автоматически освободить ресурсы при выходе из блока. Для простых случаев этого достаточно.
Аноним 29/03/17 Срд 02:56:07  393143
>>393141
Вот именно, что для простых, а если пилить кэш ресурсов с истекающим сроком жизни, то кресты выигрывают.
Аноним 29/03/17 Срд 07:44:58  393162
1490762714.png (36Кб, 455x250)
Няши, поясните, SDL хороший выбор на 2017 год? В /pr/ поясняют что мертво, нужен вулкан. А что вы скажете?
Аноним 29/03/17 Срд 07:47:29  393163
>>393162
> SDL хороший выбор на 2017 год
А почему он должен быть плохим?

> нужен вулкан
В GLFW вроде бы добавили поддержку Вулкана.

> А что вы скажете?
Скажу то, что раз ты юзаешь библиотеки Qt то почему бы контекст создавать безо всяких сторонних либ того же SDL?
Аноним 29/03/17 Срд 07:59:21  393165
>>393163
> А почему он должен быть плохим?
Не знаю, мне он вполне нравится, да и выглядит логичным. Главное запомнить как называются все элементы, а то без комплнетишинов тяжело писать-приходится вечно в доки лазить.
> В GLFW вроде бы добавили поддержку Вулкана.
Так это всё равно интерпритатор в API вулкана, не нужно.

> Скажу то, что раз ты юзаешь библиотеки Qt то почему бы контекст создавать безо всяких сторонних либ того же SDL?

Ты имееншь ввиду зачем мне QT? В нём удобные сигналы, и цикл выполнения. На чистых крестах пришлось бы делать что-то вроде while (true).
Или ты спрашиваешь зачем мне SDL если есть QT? В кт опенгл какой-то непонятный, почти нет документации. Ни асилил короче.
Аноним 29/03/17 Срд 08:09:24  393166
Итак, анон. Наступило время переката. И вот вопрос. Как организовывать шапку?
Есть мысля залить её на https://gist.github.com/ и со временем что-то убирать/добавлять т.к. в текущей шапке есть мёртвые линки (ну по крайней мере месяц назад точно).
И в будущем всё равно найдутся долбаёбы которые просят ссылки на туторы игнорирую шапку вообще.
Что скажешь?
Аноним 29/03/17 Срд 08:12:23  393167
>>393166
Всё правильно считаешь. Надо как в /s - шапка на гейхабе, её никто не читает, (впрочем шапку треда тоже не читают).
Аноним 29/03/17 Срд 08:21:03  393169
>>393167
>>393166
Тогда перекатываемся:
https://2ch.hk/gd/res/393168.html
https://2ch.hk/gd/res/393168.html
https://2ch.hk/gd/res/393168.html
Аноним 14/11/17 Втр 21:32:57  456524
Сука, почему когда я два часа серчу инет в поисках очередного говна, которое мне нужно вымучить за неделю и сдать в свой говновузик, чтобы не отчислили нахуй, рано или поздно все сводится к тому, что я прихожу на ебучий двач? Что блять пошло не так в моей жизни?
Аноним 14/11/17 Втр 21:55:11  456526
я знаю что прои[...].webm (1903Кб, 1280x720, 00:00:21)
>>456524
>Что блять пошло не так в моей жизни?
Ты выбрал опенгл вместо софтвар рендерера
Аноним 14/11/17 Втр 22:49:50  456542
>>456524
Ты просто ещё молодой и зёленый. Всё нормально.
А вот этого >>456526 пидораса-велосипедиста, я бы на твоём месте не слушал.
Аноним 15/11/17 Срд 00:40:52  456546
>>456524
Ты просто долбаеб необучаемый. Который просто не может:
1) прочитать
2) запомнить
3) сделать


Топ тредов
Избранное