М.Двач / Gamedev

Этого треда уже нет.
Это копия, сохраненная 23 сентября 2018 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

519 Кб, 768x1143
OpenGL thread 4 4 ноя 2015, 18:17 195365 В конец треда | Веб

Рисуй треугольник!
Треугольник сам себя не нарисует!

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

Архив:

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 and Quaternion FAQ.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

Ответы195378197338201755232407260475295696298411312300368929378154386268390741391175

# OP 4 ноя 2015, 18:21 2 195366

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

4 ноя 2015, 18:23 3 195368

Насколько я понимаю, все серьезные геймдевелоперы перевелись, тред создан зря.
Но если нет, то такой вопрос: какую версию используете на коммерческих проектах? Я вот сижу на 3.2 и думаю — не слишком ли жирно? Алсо, на говнокарты от интел уже завезли нормальные драйвера?

Ответы195369195589

# OP 4 ноя 2015, 18:25 4 195369

>>195368
> Я вот сижу на 3.2 и думаю — не слишком ли жирно?
А может быть наоборот?
3.2 вышел 6 лет назад.

Ответы195377

4 ноя 2015, 18:37 5 195377

>>195369
>6 лет назад
Да кажись вообще 7-8. Но моя стационарная пека больше не поддерживает. При этом комфортно играю на ней в игры до 2011 включительно на средне-высоких. Среди новых ААА игр с йоба графонием довольно мало годных, на мой взгляд, так что еще пару лет можно не апгрейдить. Я к тому, что среди ца, людей с такой же точкой зрения может быть довольно большой процент, только пеку они купили не в 2008или 2009, не помню, ка к я, а на год раньше.

sage 4 ноя 2015, 18:37 6 195378

>>195365 (OP)
Вот выкатят Vulkan, и OpenGL станет legacy весь.

Ответы195381195390

4 ноя 2015, 18:40 7 195381

>>195378
С хуя ли? В нем обратная совместимость будет?

Ответы195390

4 ноя 2015, 18:56 8 195389

Поясните, когда надо использовать GL_DYNAMIC_DRAW?

Ответы195394

4 ноя 2015, 18:57 9 195390

>>195381
> В нем обратная совместимость будет?
НЕ-БУ-ДЕТ
>>195378
> Вот выкатят Vulkan, и OpenGL станет legacy весь.
Для каких-то мегасложных вещей, игре те же, вполне себе да.
А для простого будет хватать и старого ogl'a.

4 ноя 2015, 18:59 10 195394

>>195389
http://stackoverflow.com/a/23021346

61 Кб, 1366x768
4 ноя 2015, 19:08 11 195403

Перекачусь-ка я сюда. Пытаюсь пилить движок на с++ сразу под браузеры. Хочу сказать, что Emscripten пока что довольно сырая штука. В GLFW половина функций не работает. Наверное перепишу под GLUT.

Сегодня весь день пытаюсь запилить pointer lock. Пока работает только в полноэкранном режиме. И glfwSetMousePos не работает, видимо, придётся обрабатывать событие mouse move (на десктопе я привык просто получать координаты в цикле и ставить их в середину окна, естественно с выключенным GLFW_MOUSE_CURSOR)

Ответы195421195442

4 ноя 2015, 19:23 12 195421

>>195403
> Пытаюсь пилить движок на с++ сразу под браузеры
И в чём профит?

Ответы195425

4 ноя 2015, 19:28 13 195425

>>195421
На десктопе мне всё давно известно. Портировать готовый браузерный код на десктоп намного легче. Этим я займусь совсем скоро, когда смогу в браузере хотя бы просто БРОДИТЬ по миру.

Ответы195428

4 ноя 2015, 19:35 14 195428

>>195425
Чет я не понял, ты пишешь дектопный код на с++, потом переводишь его в жс с помощью эмскриптен, а потом будешь назад переводить в с++?

Ответы195436

4 ноя 2015, 19:40 15 195436

>>195428
Браузерный компилируется emscripten'ом, десктопный компилируется GCC.

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

Например, сейчас я выяснил, что GLFW не очень хорошо поддерживается емскриптеном. Скорее всего перепишу на [free]GLUT/SDL. Не придётся делать это потом, когда будет уже много кода.

4 ноя 2015, 20:01 16 195442

>>195403
А ты какую версию glfw юзаешь?
У меня нету функции
> glfwSetMousePos
но есть
> glfwSetCursorPos

Ответы195446

4 ноя 2015, 20:14 17 195446

>>195442
Вторую. Третья не работает, опять же, хотя поддержка есть.

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

Придётся как-то преобразовывать абсолютные координаты захваченного курсора (они могу расти бесконечно) в координаты относительно последней обработки. Пошёл смотреть исходники всяких движков, портированных на webgl

Ответы195452195453195874

4 ноя 2015, 20:24 18 195452

>>195446
Всё, решение найдено. Надо обрабатывать событие HTML mousemove (через API эмскриптена). Там есть movementX и movementY, содержащие значение относительно предыдущего такого события

4 ноя 2015, 20:25 19 195453

>>195446
https://github.com/toji/webgl-quake3/blob/master/js/main.js#L533

4 ноя 2015, 22:26 20 195492

Поясните пожалуйста. Есть у меня 3д координаты фигуры.
Я умножаю каждую вершину(допустим, без шейдеров), как в обычном пайплайне, на матрицы. Scale->Rotate->Translate->View->Projection.
В итоге имею 4вектор, в котором последняя координата - флаг.
Теперь я должен рисовать эту вершину, используя первый и второй элемент(Х и Y)? Получается, третий элемент вообще не используется теперь?

Ответы195499195506

4 ноя 2015, 22:54 21 195499

>>195492
Четвёртая координата - это глубина. Используется для отсечения невидимых поверхностей. Пока что автоматически, вручную ты будешь ей оперировать, например, при реализации прозрачности.

По поводу матриц - посмотри https://en.wikibooks.org/wiki/OpenGL_Programming/Modern_OpenGL_Tutorial_05

Ответы195516

4 ноя 2015, 23:04 22 195506

>>195492
Вообще, ты не прав. После умножения вершины на матрицы модели, вида и проекции у тебя по прежнему вектор положения в трёхмерном пространстве, только уже относительно камеры. Используя 3 координаты и глубину видеокарта уже рассчитывает положение на экране.

Матрица проекции отвечает, например, за перспективу. Более удалённые от камеры точки сближаются. Точно не скажу, какая это матричная операция, можешь глянуть код функций перспективы: https://github.com/g-truc/glm/blob/master/glm/gtc/matrix_transform.inl#L211-L399

Ответы195516

4 ноя 2015, 23:26 23 195516

>>195499
>>195506
Таки на счёт четвёртой координаты яя ошибся
http://stackoverflow.com/questions/2422750/in-opengl-vertex-shaders-what-is-w-and-why-do-i-divide-by-it
Кажется, в прикреплённом треде тебе правильно ответили.

4 ноя 2015, 23:28 24 195519

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

Что там надо поставить чтоб оно нормально блядь работало без всяких выебонов?

Ответы195524195527195547

4 ноя 2015, 23:35 25 195524

>>195519
>Что там надо поставить чтоб оно нормально блядь работало без всяких выебонов?
Debian

147 Кб, 636x657
4 ноя 2015, 23:41 26 195527

>>195519
> попытался в нём запилить лабораторку из универа - нихуя опенгл не пашет
Что у тебя там?

Ответы195535

5 ноя 2015, 00:10 27 195535

>>195527
там всё на хохляцком
в двух словах - треугольник, у которого цвета меняются и идут градиентом от одного угла к другому (разноцветный треугольник)

Ответы195536195539

5 ноя 2015, 00:11 28 195536

>>195535
это типа самая первая, самая примитивная лаба

через месяц сдавать ему курсач - свою игру
а не только не совсем понимаю как её сделать, так ещё тупо и возможности нет, пиздец какой-то а не предмет

Ответы195539

5 ноя 2015, 00:19 29 195539

>>195535
>>195536
Я отпишусь по позже.
Не ссы.

5 ноя 2015, 01:14 30 195547

>>195519
>нихуя опенгл не пашет
Каким образом не пашет? Вкидывай с++-код, шейдеры. Еще можешь попытать счастья в /pr, он побыстрее будет.

5 ноя 2015, 01:42 31 195556

Наконец-то новый тред

5 ноя 2015, 04:39 32 195576

Пацаны, а вызывать функции опенгла можно только с того треда, который создал контекст, или как?

Ответы195586

5 ноя 2015, 07:54 33 195586

>>195576
Утверждается, что можно в одном треде контекст отпустить, в другом принять и рисовать. Но что-то с такой системой заморачиваться неохота, даже для теста.

5 ноя 2015, 09:29 34 195589

>>195368
>все серьезные геймдевелоперы перевелись
Ты хотел сказать движкописатели? Серьёзные геймдевелоперы делают игры.

74 Кб, 1366x768
5 ноя 2015, 11:42 35 195619

Подскажите по поводу выделения памяти под массивы вершин. Добавил в сцену поддержку нескольких объектов. Все они хранят вершины в одном массиве. При добавлении вершин в массив хочу увеличивать его realloc'ом. Вроде как должно избавить от фрагментации памяти, да и на видеокарту так эффективнее отправляется. Но меня беспокоит скорость перемещения данных при realloc'е.

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

В целом, подскажите, как лучше выделять память и хранить эти данные.

Ответы195620195652195715195847195876

5 ноя 2015, 12:08 36 195620

>>195619
Нахуя в одном массиве-то? Байтоеб мамкин?

Ответы195623

5 ноя 2015, 12:18 37 195623

>>195620
Я же написал
>Вроде как должно избавить от фрагментации памяти, да и на видеокарту так эффективнее отправляется.
Да чего эти массивы, по-твоему, придумали?

Ответы195707

5 ноя 2015, 15:08 38 195652

>>195619
Какая версия опенгл?

Ответы195806

5 ноя 2015, 16:33 39 195707

>>195623
Я и говорю байтоеб. Между тобой и железом еще сидит драйвер, со своими понятиями. Вот ты думаешь дал ему указатель на данные в ram и они потекли по шине в vram? Нихуя. Пока не скажешь glFinish или SwapBuffers, драйвер имеет право курить бамбук. Все зависит от реализации.

Ответы195806

5 ноя 2015, 16:42 40 195715

>>195619
Ты ебанулся? Для каждого объекта сделай свой массив вершин. Чего байты ебёшь-то.

Ответы195806

32 Кб, 600x399
5 ноя 2015, 16:49 41 195718

ОБЪЯСНИТЕ, МНЕ, БЛЯДЬ, МОЛЮ!!! ПОЧЕМУ ФУНКЦИЯ GLSL noise1 ВСЕГДА(!)АБСОЛЮТНО ВСЕГДА ЁБ ЕЁ МАТЬ(!!!!!!) ВОЗВРАЩАЕТ 0??????????? ЭТО ЖЕ ШУМ, ОН ДОЛЖЕН БЫТЬ РАЗНЫМ, ПИЗДЕЦ КАРОЧЕ! КАК СДЕЛАТЬ?????

Ответы195724195728196126

5 ноя 2015, 16:54 42 195724

>>195718
пссц, юнити-дибил, не хочешь САМ РУКАМИ КОД ПОПИСАТЬ! Её просто еще не реализовали.

Ответы195729

5 ноя 2015, 16:57 43 195728

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

Ответы195731

5 ноя 2015, 16:57 44 195729

>>195724
Что значит не реализовали?
https://www.opengl.org/sdk/docs/man/html/noise.xhtml
Где тут хоть 1 слово о том, что её не реализовали?

Ответы195765

5 ноя 2015, 16:58 45 195731

>>195728
У меня есть переменная, которая содержит в себе прошедшее с запуска программы время. Она может подойти как параметр. Осталось передать его в функцию, которая не работает.

5 ноя 2015, 17:43 46 195765

>>195729
Это спецификация. Кто как хочет так её и реализовывает. Не хочет реализовывать нойз - не реализует. Вендор железа сам решает и никому не отчитывается.

Ответы195766

5 ноя 2015, 17:47 47 195766

>>195765
Вендор обязан реализовать то что входит в объявленную им поддерживаемой версию стандарта.

Ответы195818195846

5 ноя 2015, 19:06 48 195796

а есть на opengl какой-то онлайн компилятор?

Ответы195811

53 Кб, 1366x768
5 ноя 2015, 19:22 49 195806

>>195652
WebGL (считай, что OpenGL ES 2.0).

>>195707
>>195715
Ок.

75 Кб, 640x1136
5 ноя 2015, 19:32 50 195811

>>195796
Компилятор чего?

Ответы195958

5 ноя 2015, 19:37 51 195818

>>195766
Тащемта, это в директиксе так, а огл у каждого свой. Вспомни те же расширения из времён 1.1.

Ответы195828195848

5 ноя 2015, 19:44 52 195828

>>195818
Правильно, а вспомни еще их префиксы и понятие core since.

5 ноя 2015, 20:10 53 195846

>>195766
> Вендор обязан реализовать то что входит в объявленную им поддерживаемой версию стандарта.
Пидарашьи вопли мамкиног опетуха. Иди и реализовывай. Я уверен, что ты даже на стажера в н-видиа не пройдешь.

Ответы195848195852

5 ноя 2015, 20:18 54 195847

>>195619
VAO для кого придумали, епта?

Ответы195848195851

5 ноя 2015, 20:25 55 195848

>>195818
Расширения есть до сих пор. Таким образом, новые фичи попадают в опен гл куда раньше, чем в директикс.

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

>>195847
>2015
>VAO

Ответы195854195862

5 ноя 2015, 20:44 56 195851

>>195847
Вроде и без него нормально получилось. Его нет в базе WebGL, только в расширении. Какие от него профиты?

Ответы195862

5 ноя 2015, 20:44 57 195852

>>195846
Иначе вендор пиздит про поддерживаемую версию. Потому что версии определяются в основном именно принятием в них расширений. Сверх версии - пожалуйста, пили свои glYOBAStreamSparsedDataArrayBufferPointers.

В директхуе все просто? А сколько не-железячников в нем участвует? Точнее если не мелкомягкие, то кто?

Ответы195854

5 ноя 2015, 20:56 58 195854

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

>>195848
> Но он все правильно сказал.
Нет.

Ответы195857

5 ноя 2015, 21:11 59 195857

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

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

Ответы195865

5 ноя 2015, 21:24 60 195862

>>195851
>нет в базе
Его самому запилить - это полсотни строчек кода.

>>195848
Что не так с VAO?

Ответы195954

18 Кб, 300x400
5 ноя 2015, 21:36 61 195865

>>195857
> оборудование тупо не соответствует стандарту
Манямирок абосраташа-юнити-петуха лопнул. Если я тебе скажу, что на консолях еще на asm пишут и железо гавняное, что приходится извращаться еще так. И на боксе и на пс3. Всё консольное железо и видеокарты - полное гавно. Было есть и будет.
_Boris Batkin at Naughty Dog_

Ответы195867

5 ноя 2015, 21:43 62 195867

>>195865
Не буду сомневаться, что писать под сосноли процесс в принципе изъебистый и еще наполовину анально огороженный вендорами. Изъебистость его в основном вызвана тем, что 1) у каждой сосноли свой фиксированный набор железа, и если девелопер собирается выпускать игоря сразу на всем что под руку попадется, то ебля его кодомакак с кучей железа где у каждого гпу свои тараканы разумеется обеспечена; 2) желание запилить графон круче чем вчера, но на том же говне мамонта, что и позавчера, и это пожалуй основной генератор секса.

5 ноя 2015, 22:32 63 195874

>>195446
Ебать ты обосранец. Думаешь, кто-то будет играть в твоё говно в браузере? Нахуй тащить в браузер неприспособленные для этого вещи? Может, мне насрать тебе на лицо потому, что сейчас модно так делать среди тупорылых макак? Пиши нормальный, оптимизированный код под десктоп. Нет блядь, я сожру гигабайты оперативки и высру говно с графоном хуже, чем в 1997 году, при этом это говно будет тормозить сильнее третьего крузиса, но зато ЕБАТЬ Я МОДНЫЙ ДЕВЕЛОПЕР У МАМЫ, ТРИДЕ, В БРАУЗЕРЕ, СМАТРИТИ ВСЕ!!!11
Веб зашёл в тупик в тот момент, когда js-макаки внезпно решили, что они тоже у мам программисты и устроили пир во время чумы, запихивая в браузер абсолютно всё говно, не приспособленное для этого.

Ответы195885195894313338

36 Кб, 600x400
5 ноя 2015, 22:35 64 195876

>>195619
Ты ебанутый? Что ты там оптимизируешь, блядь? Очнись, нахуй, твой говнокод транслируется в жс-дрисню, это говно по определению не может быстро работать, там нечего оптимизировать.

Ответы195894

5 ноя 2015, 22:59 65 195885

>>195874
Луддит сука штоле? Вебгл есть, значит кому то это нужно. Само 3д в браузере тормозит не больше чем на десктопе, узкое место это жс, т.е. физика, а она не нужна для браузеродрочилен. В итоге получаем идеальную мультиплатформу, не нужна ни анальная жава, ни моно, ни анус твоей мамки - только браузер, а он стоит на любой микроволновке и на радость детям выводит трехмерные кубы прямо по соседству с вкладкой порнотьюба. Прогресс не остановить, мудак ты тупой.

Ответы195887195898

5 ноя 2015, 23:13 66 195887

>>195885
>трехмерные кубы
>прогресс
Проснись, ты обосрался.
Массивы вершин, текстуры хранить/сортировать/обновлять ты где собрался? Не в тормозной js-дрисне? Или ты думаешь, что все данные сразу же волшебным образом попадут в гпу?
Это говно не нужно никому, кроме мамкиных отрисовщиков кубов и цветных треугольников, и прогресса в этом не больше, чем в пожирании говна только потому, что кто-то заикнулся, что так модно.

Ответы195891

5 ноя 2015, 23:25 67 195891

>>195887
Разуй глаза, в соседнем треде обсуждают уе4 где сцена БЕЗ ВСЕГО дает 10 фпс и это считается нормальным, плюсы ёба, безграничные возможности. А человек с мозгами сможет написать быстрый код и на жс. Никто не говорит что браузер не потянет крузис 4, такие игры для веба нет смысла пилить. Зато для индипараши как замена флешу - то что надо. Пиздуй на порталы популярных вебжл либ и смотри примеры, диванный кармак блядь, там отнюдь не одни кубы показывают и нихуя не тормозит.

5 ноя 2015, 23:37 68 195894

>>195874
>я сожру гигабайты оперативки
>говно будет тормозить сильнее третьего крузиса
>>195876
>твой говнокод транслируется в жс-дрисню, это говно по определению не может быстро работать
Сыкнул на вас, на таких опущей, что в 2015 году не слышали про Asm.js и WebAssembly

Ответы195897

5 ноя 2015, 23:45 69 195897

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

Ответы195899195900195904

5 ноя 2015, 23:47 70 195898

>>195885
>Само 3д в браузере тормозит не больше чем на десктопе, узкое место это жс, т.е. физика, а она не нужна для браузеродрочилен.
Кстати, физику переносят на GPU с помощью шейдеров.
>Никто не говорит что браузер потянет крузис 4, такие игры для веба нет смысла пилить.
Вопрос времени.

5 ноя 2015, 23:47 71 195899

>>195897
Что же тогда в твоем представлении жаба?

5 ноя 2015, 23:48 72 195900

>>195897
>Ассемблер в браузере
>+ даже не понял, что я пишу не на JS
ты очень тупой

Ответы195940

6 ноя 2015, 00:07 73 195904

>>195897
Тащемта жаваскрипт уже давно комилируется всеми браузерами на лету в нативный код. В противном случае у тебя бы даже ютуб не запустился.
Жаваскрипт код скомпилированный Emscripten работает в некоторых браузерах всего в 2 раза медленее С++ кода и быстрее жавы.

Ответы195968

6 ноя 2015, 09:22 74 195940

>>195900
Я НА АСЕМБЛИРИ ПИШУ Я КРУТОЙ И УМНЫЙ ПРАГРАМИСТ ПАНЯТНА?
Да-да, мы все тебя услышали, можешь больше не кукарекать.

6 ноя 2015, 11:23 75 195954

>>195862
>Что не так с VAO?
Я перефразирую:

>2015
>держать геометрию в клиентскиой памяти

6 ноя 2015, 11:53 76 195958

>>195811
кода

Ответы331941

6 ноя 2015, 12:27 77 195967

>>195964
НА АСМ.ЖС КАРОЧИ В БРАУЗИРЕ ПИШИШЬ И ВСЁ В ГПУ ХРОНИШ ПОНИЛ? АПИРАТИВКА ВОЩЕ НЕ РАСХОДУЕТСЯ НИТАРМАЗИТ 200 ФПС ВЫДАЁТ КАК В КРУЗИСЕ

209 Кб, 700x525
6 ноя 2015, 12:39 78 195968

>>195904
Пиздец ты тупой.
Иногда даже страшно становится от того, какой беспросветный пиздец творится в головах js-макак.
Конечно, ютуб работает именно на джаваскрипте, который на лету компилируется в машинные коды и проигрывает тебе видео. Не сомневайся. Даже не задумывайся о том, что сервер шлёт сырые данные, которые затем проигрываются ядром браузера с помощью кодеков, написанных на сишке. Жаваскрипт работает медленнее всего в два раза, не сомневайся. Даже не задумывайся о том, как оно всё устроено внутри, как работает компьютер, зачем нужен кеш процессора и что такое браузер, что такое блокирующий/неблокирующий ввод/вывод, какие вообще могут быть узкие места у программы. Вообще старайся не думать, думать вредно, пусть разработчики браузера за тебя думают, они умные дяди. Просто пиши на жаваскрипте, думать не надо.

Ответы288987

6 ноя 2015, 13:10 79 195975

>>195964
Если используешь OpenGL 3.0+, то гугли vertex buffer object, а если нет, то страдай нет, правда, зачем использовать старые версии?

Ответы196308

6 ноя 2015, 13:18 80 195979

Тем временем подведу итоги треда:
>Пидарашьи вопли мамкиног опетуха
>Очередной типичный СНГ-максимализм из ничего
>Манямирок абосраташа-юнити-петуха лопнул
>Ебать ты обосранец
>Ты ебанутый?
>Проснись, ты обосрался
>Сыкнул на вас, на таких опущей
>Спустил тебе на лицо, а потом в туза выебал
>ты очень тупой
>Пиздец ты тупой

Похоже, в гд пополнение порваток.

Ответы195987196112

6 ноя 2015, 13:27 81 195987

>>195979
Сосач может в конструктивную беседу, но не может не перемешать ее с говном и хуями.

6 ноя 2015, 15:06 82 196017

>>195998
Проиграл на всю хату.

6 ноя 2015, 17:24 83 196054

>>195998
Так и будет.

6 ноя 2015, 22:51 84 196112

>>195979
> ОБЪЯСНИТЕ, МНЕ, БЛЯДЬ, МОЛЮ
> at Naughty Dog
> оборудование тупо не соответствует стандарту

sage 6 ноя 2015, 23:42 85 196126

>>195718
Ее никто не реализует.
О тебе заботятся, дурилка глупая. Чтобы ты не падал в обморок когда, не только текстуры везде по разному накладываются, но и нойз имеет разную реализацию и хитрые баги.
Сделой его сам, это просто.

7 ноя 2015, 02:08 86 196144

>>195998
ФПС 20 надо чтоб было.

7 ноя 2015, 03:50 87 196152

>>196147
Почему бы сразу через webgl пилить, а не ебаться?

7 ноя 2015, 04:19 88 196156

>>196154
С с++ переводить в джс.

Ответы196173196180

7 ноя 2015, 12:33 89 196173

>>196156
Я вообще-то программист, а не макака. Пишу на С++, оптимизирую всё, чтобы быстро работало. На жс нельзя оптимизировать.

Ответы196175196178196179196180

7 ноя 2015, 12:48 90 196175

>>196173
>оптимизирует жс-дрисню
Ебать ты даун. Обоссал тебе лицо.

7 ноя 2015, 13:22 91 196178

>>196173
То есть ты серьезно думаешь, что если ты напишешь на С++, а потом переведешь в жс, то оно будет работать быстрее, чем если б ты сразу на жс писал?

Ответы196180

7 ноя 2015, 13:24 92 196179

>>196173
А мог бы игры делать

Ответы196180

230 Кб, 1366x768
7 ноя 2015, 13:56 93 196180

>>196156
В ams.js
>>196178
Так-то да
>>196173
JS можно оптимизировать. Можно даже asm.js-код вручную писать. Но это очень муторно. Вот пример asm.js кода: https://gist.github.com/jeresig/5293608 Как на ассемблере писать вручную. Вдобавок, в дальнейшем, если WebAssembly победит asm.js, можно будет его использовать как целевую платформу - код не изменится
>>196179
Неинтересно

Ответы196182196186196191196199

7 ноя 2015, 14:09 94 196182

>>196180
>неинтересно
У тебя ошибка в слове не умею

Ответы196184

7 ноя 2015, 14:15 95 196184

>>196182
Несложно было догадаться по приложенному скрину. Надеюсь научиться моделлить и рисовать в процессе.

Ответы196187

29 Кб, 500x373
7 ноя 2015, 14:38 96 196186

>>196180
>Вот пример asm.js кода
>do {...} while (0)
вот это оптимизация

Ответы196188

7 ноя 2015, 14:49 97 196187

>>196184
Учиться делать игры с написания движка, это как учиться писать книги создавая печатный станок. Ты уж выбери что-то одно

Ответы196188

7 ноя 2015, 14:53 98 196188

>>196187
А давай я буду делать то, что мне нравится? Как тебе?
>>196186
Это подсказка компилятору. Почитай ты уже про asm.js, Сёма. Весь тред своими глупыми догадками засрал.

Ответы196190

7 ноя 2015, 14:59 99 196190

>>196188
Давай ты съебешь в /pr/

7 ноя 2015, 15:06 100 196191

>>196180
Ну будет твоя параша компилироваться сразу в псевдо-байткод, охуеть теперь. Получишь speedup в 20-30%. Учитывая то, что оно все еще запускается на виртуальной машине, использует сборщик мусора и т.д., твой движок будет супер тормозным. Это конечно не мое дело, каждый дрочит как хочет, но ты реально долбоеб.

Ответы196194

7 ноя 2015, 15:11 101 196194

>>196191
>asm.js
>компилироваться сразу в псевдо-байткод
>оно все еще запускается на виртуальной машине
>использует сборщик мусора
Твоя тупизна непробиваема

Ответы196195

7 ноя 2015, 15:15 102 196195

>>196194
Лол, это долбоеб еще думает, что у него там реальный ассемблер.

Ответы196197

7 ноя 2015, 15:34 103 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.

Ответы196204

61 Кб, 429x410
7 ноя 2015, 15:43 104 196199

>>196180
> https://gist.github.com/jeresig/5293608 Как на ассемблере писать вручную.
Это по-твоему ассемблер? Обычный js-код где немного поебывают байты. Могу написать x / 2, а могу x >> 2, но от этого код ассемблером не становится. Раздел где делают игры, я ебал.

7 ноя 2015, 15:46 105 196201

asm.js это не более чем описание того, как конпелятор emscripten транслирует с++ программы в жаваскрипт.
никакого ассемблера там нет

Ответы196202

7 ноя 2015, 15:47 106 196202

>>196201
поскольку это с++ транслированный в жс, то теоретически можно сделать обратное в жс движке браузера для оптимизации. в этом собственно вся суть

7 ноя 2015, 15:49 107 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.

Короче, удачи с написанием производительного движка, хуесос.

Ответы196214

7 ноя 2015, 16:17 108 196214

>>196204
>А если вкратце, то ПСЕВДО-БАЙТКОД.
какой еще байткот? цитата значит только то, что 99% жаваскрипт функций использовать низзя, иначе это будет "ненастоящий" asm.js. Вот и все.

Ответы196215

7 ноя 2015, 16:29 109 196215

>>196214
Гугли как работают интерпретаторы, и тогда поймешь почему эту хуйня — это типа байткод.
У них даже в факе есть соответствующий вопрос:
>Why don't you specify a bytecode syntax instead of strange JavaScript idioms?

Ответы196222

7 ноя 2015, 17:02 110 196222

>>196215
Их ебанутый фак составлен в аспекте ОЛОЛО МЫ ПРИДУМАЛИ НОВЫЙ ЯЗЫК ДЛЯ ВЕБА.
хотя на самом деле это просто вспомогательная библиотечка для компилятора с++ в жс

90 Кб, 1366x768
7 ноя 2015, 18:30 111 196245

Пока вы тут срётесь, я начинаю реализовывать направленное освещение. Пока что оно намертво забито в шейдер. Сейчас сделаю получение данных от приложения, запилю класс Light::Sun.

84 Кб, 1366x768
7 ноя 2015, 19:13 112 196259

Кажется, я не учитываю положение и вращение объекта. Проблема в том, что я не знаю, что передавать в шейдер. Я сначала получаю матрицу модели-вида-проекции всей сцены (относительно камеры), потом для каждого объекта смещаю её, затем поворачиваю. Т.е. как таковой "матрицы обекта" у меня нет, в его методе draw я произвожу операции над глобальной матрицей, а не единичной. Может кто-то подсказать, что в таком случае передавать в шейдер? Может я вообще всё в неправильном порядке делаю? Код: http://pastebin.com/D3Z4wrbd

Ответы196271

7 ноя 2015, 20:23 113 196269

Получается, я освещаю объект так, будто он находится в начале координат и не повёрнут. Значит мне надо умножить нормали на матрицу модели-вида этого обекта?

7 ноя 2015, 21:06 114 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);

Надеюсь, чем нибудь тебе это поможет, удачи тебе анон.

Ответы196273196275196290

7 ноя 2015, 21:07 115 196273

>>196271
сука, разметку проебал, короче там где шрифт меняется с обычного на курсив и назад должно быть умножение

7 ноя 2015, 21:12 116 196275

>>196271
а, думаю что и так очевидно, но на всякий случай - m_scale, m_rotation и m_translate - это glm::vec3 содержащие информацию про масштабирование, поворот и сдвиг объекта по/вокруг осей х, у, z соответственно

82 Кб, 1366x768
7 ноя 2015, 22:07 117 196290

>>196271
Спасибо! Посмотрев твой код, я понял, что можно вместо translate относительно матрицы MVP сделать translate относительно единичной,а потом MVP умножить на результат (надо бы освежить в памяти теорию по матрицам).

Свет теперь рассчитывается правильно.

8 ноя 2015, 00:13 118 196308

>>195975
Ебанашка, пойди загугли что такое VAO и зачем его используют.

Ответы196314

8 ноя 2015, 01:25 119 196314

>>196308
Хуесос не знает, что до третьей версии VAO означал совсем другую вещь. Еще ты, наверное, не знаешь, кто по средам твою мамашу поебывает.

8 ноя 2015, 06:07 120 196342

А есть смысл хранить для каждого объекта матрицу модели-вида вместо позиции, кватерниона и масштабирования?

Ответы196371

8 ноя 2015, 13:03 121 196371

>>196342
Зачем?

9 ноя 2015, 17:19 122 196617

Начал задумываться над архитектурой движка. Сейчас есть классы Object и Camera, оба наследуются от Transformation - он хранит положение и вращение относительно некоторой начальной точки (сейчас только начало координат, но потом будет возможность указать любой другой transformation, чтобы объекты могли прикреплятьс друк к другу. например, камера позади персонажа).

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

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

Ответы196682196685196713196718196724

78 Кб, 1366x768
9 ноя 2015, 22:27 123 196681

Пытаюсь сделать зеркало (большой прямоуольник на скрине) с помощью stencil-буфера. Почему отражённые объекты рисуются и за пределами зеркала? Код рендера: http://pastebin.com/0ZTv5XKJ

Ответы196711

sage 9 ноя 2015, 22:30 124 196682

>>196617
Открой для себя three.js.

9 ноя 2015, 22:36 125 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

> Непонятный для меня момент - это шейдеры и шейдерные программы
Это вообще пушка. Самая сложная-пресложная и рискованная часть - непонимат.

Ответы196692196755

9 ноя 2015, 22:56 126 196692

>>196685
>у тебя будет 1.5 fps
У меня 60 фпс, и то это искуственное ограничение. Что я делаю не так? Не занимаюсь преждевременной оптимизацией?
>рискованная часть
Ты не любитель тестов, да?

Ответы196701

9 ноя 2015, 23:12 127 196701

>>196692
Скрины же. Где скрины?
> Ты не любитель тестов
Ты хотел сказать render sandbox'ов?

Ответы196702

9 ноя 2015, 23:20 128 196702

>>196701
Скринов полон тред. Я к тому, что пока не даже сцены как таковой. Об оптимизации тут и речи быть не может.
>Ты хотел сказать render sandbox'ов?
Я имел ввиду автоматизированное тестирование. Обычно я пишу тесты до кода, но опыта в С++ и в игровых движках у меня мало, и я даже не представляю, как можно их тестировать. Но планирую приступить к написанию тестов как только архитектура более-менее устаканится

Ответы196714

10 ноя 2015, 00:22 129 196711

>>196681
Почему бы не использовать рендер в текстуру?

10 ноя 2015, 00:54 130 196713

>>196617
>архитектура движка
>классы
>наследование
Лоооол. Просто пушка. Я знал, что ты меня не подведешь.

>Ogre
Кстати, Ogre довольно хуево написан, за остальные не скажу.

Ответы196720

10 ноя 2015, 00:55 131 196714

>>196702
>gamedev
>TDD
Лоол, жги еще.

Ответы196744

10 ноя 2015, 01:26 132 196718

>>196617
Я чайлды сделал так - Transform хранит родителя, при доставании координаты складывает с родительской, и так рекурсивно пока не упрётся в конец дерева.
Для шейдеров/текстур запили объекта материала, как в юниче. Для интерфейса вхардкодь какой-нибудь убершейдер с ползунками, лол.

Ответы196722

10 ноя 2015, 02:02 133 196720

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

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

И таки я вижу применение TDD в геймдеве - например, если стоит задача оптимизировать какое-томесто в движке, то первым делом следует написать тесты производительности (а как иначе ты её замеришь?)

Ответы196721

10 ноя 2015, 02:15 134 196721

>>196720
А как вообще пишутся тесты и как они применяются?
Много слышу о них, но как-то гайда для тупых не нахожу.

Ответы196725

10 ноя 2015, 02:16 135 196722

>>196718
>Я чайлды сделал так - Transform хранит родителя, при доставании координаты складывает с родительской, и так рекурсивно пока не упрётся в конец дерева.
Надеюсь, ты сохраняешь значение, чтобы если у объекта несколько дочерних, для каждого не пересчитывать
>Для шейдеров/текстур запили объекта материала
А в формате md5mesh шейдер указывается для модели. Правда этот формат и не умеет хранить материалы. Так что, наверное, так и сделаю, как ты сказал.

10 ноя 2015, 02:18 136 196724

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

Ответы196726

10 ноя 2015, 02:19 137 196725

>>196721
В тестирование на С++ я не вникал. Утилит полно, например, классическая Check. Надо смотреть гайды по конкретному инструменту. А по общем принципам тестирования целые книги есть.

10 ноя 2015, 02:21 138 196726

>>196724
У мен итак есть класс шейдерной программы (и для шейдера отдельный). Я хотел узнать, какова логика смены шейдерных программ.

Ответы196727

10 ноя 2015, 02:27 139 196727

>>196726
https://github.com/id-Software/DOOM-3-BFG/blob/master/neo/renderer/RenderProgs.h#L133

10 ноя 2015, 07:17 140 196744

>>196714
Кстати, где можно почитать что-то внятно аргументированное об этом?

10 ноя 2015, 08:52 141 196755

>>196685
>убьешь кеш
>пилит движок на джавадрисне
Какой кеш? Там в любом случае будет 2 фпс, когда объектов на сцене будет больше пяти.

79 Кб, 1259x813
10 ноя 2015, 08:59 142 196756

Посоны, отвлекитесь ненадолго от жарких споров и подскажите, есть ли смысл на десктопе юзать opengl es 2 вместо opengl 2.1?
Пишу на некроноуте, который поддерживает максимум эти версии. Игрушка несложная будет, в 2d, в принципе, много фич мне и не надо. Хочу получить core профиль без deprecated функционала. Как обстоят дела с языком шейдеров у gles 2? Сильно отличается от opengl 2/3? Стоит оно того или нет?

Ответы196761196764196779

10 ноя 2015, 10:52 143 196761

>>196756
GLES 2.0 суть то же самое, что GL 4.0 кокрастыке без депрекейтед фич. Все ограничения GLES 2.0 легко обходятся.
GLSL такой же, единственное, что нужно - это писать точность переменных в шейдерах (highp, lowp и т.д), а так никаких отличий.
Единственное, в чём я сомневаюсь - взлетит ли глес2 на винде, ни разу не пробовал ещё.

Ответы196786196918

10 ноя 2015, 11:03 144 196764

>>196756
Кек. Я ееешку откопал нахаляву, на ней только 1.5 поддерживается. Думаю: принять челендж или нахуй послать.

10 ноя 2015, 12:41 145 196779

>>196756
А ES запустится на десктопе?
Если нет, то я бы писал на ДХ9.

Ответы196786

10 ноя 2015, 13:05 146 196786

>>196779
>DX9
Для меня кросс-платформа во главе угла, сам под линуксом прогаю. Под шином планирую только компилять шин-версию.
Под линуксом ES работает, видеокарта - встроенная Intel.
>>196761
А я про винду и не задумался даже, под линуксом всё норм взлетело сходу, думал, что и под шином будет норм. Надо будет попробовать.

87 Кб, 1366x768
10 ноя 2015, 20:16 147 196829

А glViewport - дорогая операция? Можно использовать её на каждый элемент интерфейса прямоугольной формы, или лучше для производительности делать весь интерфейс в одном вьюпорте?

Ответы196835196837196838

36 Кб, 600x400
10 ноя 2015, 21:14 148 196835

>>196829

10 ноя 2015, 21:31 149 196837

>>196829
Нахуя? Тебе дали трансформейшен матрицу, нет блядь, хочу вьюпорт туда-сюда двигать.

Ответы196842

10 ноя 2015, 21:37 150 196838

>>196829

нет, недорогая, это обычное матричное преобразование
хоть евсь стек матриц преобразованиями забей, производительности похуй

Ответы196842196843

10 ноя 2015, 22:15 151 196842

>>196837
>>196838
Почему тогда не убрали glViewport из OpenGL ES? Все остальные матричные операции выкинули

Ответы196844

10 ноя 2015, 22:15 152 196843

>>196838
В OpenGL ES нет стека матриц. Там вообще нет матриц

10 ноя 2015, 22:16 153 196844

>>196842
>Почему тогда не убрали glViewport из OpenGL ES?
Прост шоб был.
>Все остальные матричные операции выкинули
И хорошо. Программируемый пайплайн наше фсё.

93 Кб, 1366x768
11 ноя 2015, 01:17 154 196863

Сделал прикрепление объектов сцены друг к другу через, добавив произвольную базовую матрицу трансформации объекта. Получил таким образом полноценную камеру третьего лица.

Ответы196898

11 ноя 2015, 14:51 155 196898

>>196863
Слушай, побереги свои отчеты о разработке до следующего раза. Пишешь ты, а стыдно мне.

Ответы196899

11 ноя 2015, 14:56 156 196899

>>196898
Ты че он же на плюсах и ассемблере пишет, ты радоваться должен.

11 ноя 2015, 16:12 157 196918

>>196761
>взлетит ли глес2 на винде
https://github.com/google/angle

12 ноя 2015, 05:07 158 197009

220 Кб, 1366x76898 Кб, 1366x768

Убийца ГТА на подходе! Можно садиться в машину и ездить. Реализм 100% - физика езды на убитом в хлам москвиче присутствует.

Ответы197012197082

12 ноя 2015, 07:01 159 197012

>>197009
Ну это вообще пушка.

12 ноя 2015, 15:55 160 197082

>>197009
А что там с освещением и тенями?

Ответы197128

13 ноя 2015, 02:09 161 197128

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

Я вот заметил, что кости скелетной анимации и объекты сцены - суть одно и то же: имеют родительский объект и дочерние, матрицу трансформации относительно родителя и локальную. Стоит ли их делать одной сущностью (или потомками одной сущности)?

13 ноя 2015, 19:04 162 197187

Подскажите. Пытался писать код в Qt и Вижуале - везде выводит ошибки, мол у меня редист не тот (хотя есть все версии)

Ответы197201

26 Кб, 580x346
13 ноя 2015, 20:53 163 197201

>>197187
Што?

273 Кб, 2557x1109
sage 15 ноя 2015, 00:02 164 197338

>>195365 (OP)
Бамп нахуй блять.

Ответы197347324698

15 ноя 2015, 02:19 165 197347

>>197338
Что за унтер там на месте геймдизанера?

Ответы197351

15 ноя 2015, 02:48 166 197351

>>197347
Это отсылка к /gd/

1,6 Мб, 1920x1080
16 ноя 2015, 13:27 167 197534

Почему код, работающий на моих 3 машинах не работает на других? Сделал подарок бате на день рождения, протестировал у себя и на своём планшете, прогнал через gDEBugger - всё отлично, за исключением deprecated функций. А у бати оно не запускается, пиздец!
gluErrorString охуеть какой информативный метод. Недопустимая операция, вот это да! А почему gDEBugger ничего не ловит? Непонимат.

Ответы197539197566

16 ноя 2015, 13:36 168 197539

>>197534
Спектр возможных причин очень широк и выловить такую хуйню, судя по моему опыту, очень сложно.
У меня, например, была такая ситуация: в одном месте я вместо glGenVertexArrays написал glCreateVertexArrays, которые совершенно идентичны за исключением того, что последнюю ввели в стандарт только в 4.5 версии. А я таргетил 3.2. Поэтому неудивительно, что почти на всех компах, кроме моего, моя поделка крашилась. И даже тут интересно: мой комп поддерживает только 4.2 версию

Ответы197543

16 ноя 2015, 13:53 169 197543

>>197539
Отправил версию, в которой пишется номер строки, на которой нашлась ошибка. Алсо, нельзя ли настроить gDEBugger, чтобы он проверял совместимость с другими версиями OGL? Было бы здорово.

16 ноя 2015, 15:52 170 197566

>>197534
Делал бы на WebGL - не было бы такой хуйни

Ответы197569197580

16 ноя 2015, 16:07 171 197569

>>197566
Охуенный совет, ваще.

16 ноя 2015, 17:25 172 197580

>>197566
Мой движок ориентирован на десктопы, не буду же я пилить новый движок за 2 дня до батиного праздника.

Ответы197585

16 ноя 2015, 18:43 173 197585

>>197580
Я понимаю. Просто ничего подсказать не могу, вот и выебываюсь.

А вообще, если хочешь, могу глянуть твой код незамыленным взором (запустить вряд ли смогу, у тебя же винда-only?)

Ответы197741

16 ноя 2015, 20:35 174 197598

Ковырял opengl несколько лет назад, сейчас задумался над парой проектов и возник вопрос. Меня интересует исключительно 2d графика в обоих проектах. Стоит ли из-за этого вкурить современный ogl или взять какое-нибудь простое средство уровня sdl/sfml и работать на нём?

Ответы197601197604197643

16 ноя 2015, 20:43 175 197601

>>197598
>Стоит ли из-за этого вкурить современный ogl
>или взять какое-нибудь простое средство уровня sdl/sfml
А где связь? sdl/sfml создают тебе окно с контекстом и обрабатывают ввод. А версия gl зависит от того, что поддерживает видеокарта и какие драйвера стоят.
Библиотеку я бы посоветовад glfw. А ogl конечно бери 3.0+, уже не осталось, наверное, компов, которые хотя бы его не поддерживали. Хуле с легаси ебаться

Ответы197604197643

16 ноя 2015, 20:53 176 197604

>>197601
У сдл/сфмл есть свои упрощенные функции для рендеринга, вот где связь.

>>197598
Начни с одной из двух библиотек. Если возможностей окажется мало, то сверху напишешь свой OpenGL-рендерер и будешь его вызывать. Можешь сразу написать класс-обертку над sdl/sfml-рендерером и делать все через нее, чтобы потом легче было переходить на огл.

Ответы197643

17 ноя 2015, 02:41 177 197643

>>197604
>>197601
>>197598
Ну если 2д то можно попробовать sfml.
Там уже и шейдеры завезены.
https://www.youtube.com/watch?v=K6aAxuIL7h8

17 ноя 2015, 14:59 178 197741

>>197585
Нет, должен компилироваться везде, где есть libpng, opengl, glew, freeglut и gcc.

Ответы197745

17 ноя 2015, 15:25 179 197745

>>197741
Если тут не хочешь выкладывать, можешь связаться со мной в токсе https://tox.chat/ мой ID: 37C1675B1ECC30BF7C09714E5FCE11DFA998EB3641F9816C1D621BF261DDF85711D3F8AAC9E7
Отпиши тут, если напишешь, на всякий случай

19 ноя 2015, 21:05 180 198226

Посоны, такая тема. Вот есть дефолтный фреймбуффер в GL, он подгоняется под размер окна. Я пилю игру на некроноуте, и когда окошко развернуто на максимум, начинает неслабо подтормаживать, ФПС падает с 140 до 50. Вопрос - можно ли управлять размером этого фреймбуффера? Например, чтобы высота всегда была 600, а ширина подгонялась под ratio. И чтобы итоговая картинка как бы ресайзилась и подгонялась под окно. Можно ли так сделать?
Использую голый glfw.

19 ноя 2015, 21:21 181 198228

У бати на ноутбуке программа отваливается на вот этой строчке:
glGenBuffers(1, &this->VBO);
Отваливается с GL_INVALID_OPERATION. У меня на этой строчке она не отваливается. В чём может быть проблема?

Ответы198231

19 ноя 2015, 21:24 182 198231

>>198228
У него старый GL, не поддерживающий VBO?

Ответы198233

19 ноя 2015, 21:31 183 198233

>>198231
Такие есть? И как быть?

Ответы198235198260198368

19 ноя 2015, 21:35 184 198235

>>198233
Запросто, если у него старая видеокарта или банально не стоят дрова - может быть доступна только версия 1.1, а VBO появились в 1.5
Если так, то ничем не поможешь, в 1.1 только deprecated функционал, glBegin/glEnd, display lists.

Ответы198244

19 ноя 2015, 22:46 185 198244

>>198235
Там и шейдеров нет небось? Это ж ему весь рендерер переписывать, чтоб под легаси работало

20 ноя 2015, 04:43 186 198260

>>198233
Посмотри поддерживаемые расширения. Для OGL < 2 должна быть своя функция.

20 ноя 2015, 17:14 187 198323

Вкатываюсь с вопросом.
Есть некробук eee, с процессором N450. Официально заявлено, что это поддерживает OpenGL 1.5, а glxinfo говорит "Mesa GL 2.1". То есть Mesa мне сэмулирует то, что есть в OpenGL 2.1 на железе, которое в него не может, так? И интересно, на какую глюкавость можно рассчитывать?

Ответы198324

20 ноя 2015, 17:22 188 198324

>>198323
Ну по идее квейк 3 может пойти.
И, наверное, даже дум 3, но не бфг версия.

20 ноя 2015, 22:27 189 198368

>>198233
С виндой без дров идет софтовый OpenGL 1.1.

24 ноя 2015, 14:17 190 199028

Поделитесь солнечной системой запиленной на OpenGL

Ответы199039

24 ноя 2015, 15:09 191 199039

>>199028
http://www.stellarium.org/ru/

Ответы199140

130 Кб, 500x1616
25 ноя 2015, 01:27 192 199133

http://mrdoob.github.io/three.js/
Кто все эти люди? Для чего они делают проекты с таким-то графонием? Им за это платят? Почему в этом треде нет ни 1 картинки, похожей на какую-нибудь из тех проектов? Да что там этот тред, даже дети из унреал и юнити-тредов не делают ничего такого! Что движет этими людьми, делающими графоний на чистом опенгл под браузеры?

Ответы199141199156199165

25 ноя 2015, 02:15 193 199140

>>199039
я исходный код имею ввиду

Ответы199153

25 ноя 2015, 02:21 194 199141

>>199133
Это боги.

25 ноя 2015, 05:59 195 199153

>>199140
https://bazaar.launchpad.net/~stellarium/stellarium/trunk/files

25 ноя 2015, 07:27 196 199156

>>199133
Ну там Сони, еще какая-то хуйня. Да, платят.

25 ноя 2015, 09:02 197 199165

>>199133
Зашел в одну демку. Кубики и шарики цветные, для 2001 года довольно красиво. Тормозит только сильно.
Зашел во вторую - моментально были отожраны 2гб оперативки, комп вошёл в ступор и завис, пришлось ребутаться.
Ну и нахуй нужно такое 3д в браузере?

2,8 Мб, webm,
800x614
26 ноя 2015, 22:12 198 199520

Сделал загрузку bsp геометрии с лайтмапами.
Теперь надо столкновения делать.

Ответы199521199530200313

26 ноя 2015, 22:37 199 199521

>>199520
Что у тебя с фпсом?

Ответы199522

26 ноя 2015, 22:38 200 199522

>>199521
Это только на записи видео.
Так я выставил ограничение на 60.

26 ноя 2015, 23:46 201 199530

>>199520
Нашёл проблему.
pvs не хочет нормально считаться и всегда выводит всю геометрию за исключением когда я смотрю на стенку.

Ответы199605200313

27 ноя 2015, 13:01 202 199605

>>199530
Лал. Мамкин рендерщик чтоли? Какие нахуй фпс? Только миллисекунды. И не больше 3мс на кадр.

Ответы199610

40 Кб, 604x453
27 ноя 2015, 13:20 203 199610

>>199605
Ты даун какой-то.

27 ноя 2015, 14:00 204 199622

в чём писать?
на вижуал студио нихуя не понятно, на кьютэ ругается на glut какой-то
можно эту херню как-то поставить и чтоб оно без проблем работало, или всё через жопу как всегда?

Ответы199625

27 ноя 2015, 14:06 205 199625

>>199622
Юзай Qt + SDL
http://pastebin.com/rWcQg0QQ

27 ноя 2015, 19:44 206 199695

ДА БЛЯДЬ НЕ ТОНЕМ

5,8 Мб, webm,
800x713
1 дек 2015, 04:01 207 200313

>>199520
>>199530
Наконец-то я починил эту эбалу!
Судя по всему всё дело в системе координат данных: вершин, плоскостей и др.

Ответы200343200568

1 дек 2015, 10:37 208 200343

>>200313
Надеюсь хоть не на OpenGL 1.0 пишишь?

Ответы200512

2 дек 2015, 00:52 209 200512

>>200343
Конечно же нет.

Ответы200513

2 дек 2015, 01:00 210 200513

>>200512
На DX?

Ответы200514

2 дек 2015, 01:01 211 200514

>>200513
Тогда зачем я тут сижу? Это же ГЛ тред.
На 3ей версии пилю я.

2 дек 2015, 10:28 212 200568

>>200313
Ты специально q3-карты грузишь или это просто пример такой?

Ответы200577

2 дек 2015, 11:27 213 200577

>>200568
Что значит специально?
Я могу и свои загрузить, вон как выше видео: несколько коробок соединённых проёмами и всё.
А квейковские карты я беру как эталон.
Если они работают правильно и загружаются, то значит я не ошибся.

Ответы201250

3 дек 2015, 20:41 214 200903

Рисовал треугольники еще на второй версии. Сейчас решил вспомнить молодость и нихуя не понятно. Зачем pushmatrix выпилили, например? Самому теперь эту херню пилить?

Ответы200913

3 дек 2015, 21:03 215 200913

>>200903
Ссылки на тьюториалы в шапке для кого запилены?

3 дек 2015, 22:41 216 200945

DirectX-тред не нашел и прикатился сюда. Можно ли в DX9 раскрашивать Mesh в разные цвета?

16 Кб, 752x446
3 дек 2015, 23:03 217 200950

Будущему 3d художнику/гейдизайнеру это знать надо?

Ответы200955201252

3 дек 2015, 23:22 218 200955

>>200950
нет конечно
будущий геймдизайнер должен знать дх

5 дек 2015, 17:02 219 201250

>>200577
Понял, ты взял q3-формат за эталон.

Ответы201357

5 дек 2015, 17:25 220 201252

>>200950
Абсолютли нат.

6 дек 2015, 03:14 221 201357

>>201250
Ничего другого для хранения геометрии уровня я не придумал и поэтому просто уже воспользовался готовым.

Ответы201444

6 дек 2015, 14:39 222 201444

>>201357
Яснопонятно. Я бы на твоем месте (хрен когда доберусь даже до такого уровня) попробовал свежий формат карт от Валв. В кишках тот же bsp, но побогаче будет.

Ответы201703

7 дек 2015, 22:32 223 201703

>>201444
Да bsp это, видимо, структура для хранения данных.
Хочется ещё разобраться с форматом карт в думе 3.
Там уже порталы юзаются, а не заранее рассчитанный pvs.

8 дек 2015, 06:25 224 201755

>>195365 (OP)
Тут можно поиграться с белндингом:
http://www.andersriggelsen.dk/glblendfunc.php

Ответы201814

8 дек 2015, 14:12 225 201814

>>201755
Охуеть, как круто.
Палю годноту быдлу: https://www.shadertoy.com/

1,7 Мб, webm,
1058x892
9 дек 2015, 18:05 226 202088

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

Ответы202092202176

9 дек 2015, 18:31 227 202092

>>202088
Что там такое зеленое промелькнуло в последних кадрах?

Ответы202099

9 дек 2015, 18:48 228 202099

>>202092
А. Это цвет которым буфер очищаешь.
Я эти "дыры" тоже заметил сразу, особенно когда камеру быстро вращаешь.
Почему так происходит я не могу точно сказать.
Скорее всего из-за того, что процессор не может достаточно быстро отсылать команды видеокарте чтобы та всегда была нагружена и из-за этого могут быть такие дыры.
Думаю можно решить или как-то сгладить этот косяк тем, что я буду запоминать в каком листе дерева я был на предыдущем кадре и при вычисления новой позиции я будут сравнивать со старой.
Если они совпадают то и считать видимость заново не имеет смысла.

Ответы202102

9 дек 2015, 18:53 229 202102

>>202099
То есть у тебя некий "список видимости" строится асинхронно?

Ответы202103

9 дек 2015, 18:58 230 202103

>>202102
> То есть у тебя некий "список видимости" строится асинхронно?
Да, только параллелизма у меня нету. Я в нём пока не разбираюсь.
http://graphics.cs.brown.edu/games/quake/quake3.html#VisFindCluster

Ответы202115

9 дек 2015, 20:29 231 202115

>>202103
Мда, вот это, как мне кажется, плохо. А сколько времени уходит на построение? Может не так уж и дорого каждый кадр его делать? Да и обходились же как-то одним потоком раньше.

Ответы202118

9 дек 2015, 20:35 232 202118

>>202115
> А сколько времени уходит на построение? Может не так уж и дорого каждый кадр его делать? Да и обходились же как-то одним потоком раньше.
Всё происходит крайне быстро.
Я имел ввиду то, что видеокарта работает гораздо быстрее процессора и из-за этого он не может за ней угнаться.

10 дек 2015, 10:22 233 202176

>>202088
Как пилить BSP уровни? Только в хаммере? Блендер не может их экспортить? Всегда загружал octree и в хуй не дул, а тут такие возможности! Тоже хочу BSP. И как у этого формата с открытыми большими пространствами? Нужно будет подгружать отдельные куски, как в первом полураспаде?

Ответы202181

183 Кб, 424x582
10 дек 2015, 11:24 234 202181

>>202176
> Как пилить BSP уровни?
Я пилю в пикрелейтед.
Мне понравился больше чем gtkradiant.
Потом через q3map2 пропускаю карту:
https://en.wikibooks.org/wiki/Q3Map2

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

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

> Нужно будет подгружать отдельные куски, как в первом полураспаде?
Судя по всему да.

11 дек 2015, 15:31 235 202378

Ещё есть идея добавить поддержку pk3 архивов.
Я смотрел некоторый код.
Выглядит довольно просто.

19 дек 2015, 02:28 236 203803

ребята, помогите пожалуйста
есть солнечная система:
http://pastebin.com/je0TTAPP

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

в коде там типа солнце, земля и луна, они крутятся по оси вокруг солнца

Ответы203806

19 дек 2015, 05:05 237 203806

>>203803
> помогите создать +2 планеты (любые)
Ну так у тебя уже есть Земля.
Добавь Марс, например, но с другими параметрами.
В чём проблема?

Ответы203834

1,6 Мб, webm,
1042x858
19 дек 2015, 05:15 238 203809

Добавил вещи (пока 3 штуки) и анимацию оружия.

Ответы203836203840

19 дек 2015, 11:29 239 203834

>>203806
я когда что-то добавляю - у меня только луна пропадает и всё :(

19 дек 2015, 11:41 240 203836

>>203809
Двиг опенсорц?

Ответы203837

19 дек 2015, 12:01 241 203837

>>203836
В смысле? Это я сам делаю, но исходники пока никуда не выкладывал.

19 дек 2015, 13:07 242 203840

>>203809
Зочем спрайты постоянного размера?

Ответы203841

19 дек 2015, 13:11 243 203841

>>203840
Они у меня наоборот уменьшаются когда я к ним приближаюсь.
Я с биллбордами проебался дня два и оставил их так.
Потом поправлю.

Ответы203846203861

19 дек 2015, 13:24 244 203846

>>203841
а можешь мне с солнечной системой помочь?
тебе эт наверное как два пальца обосцать

Ответы203848

19 дек 2015, 13:26 245 203848

>>203846
Иди учи gl3, а про старые версии забудь.

Ответы203849

19 дек 2015, 13:31 246 203849

>>203848
мне эту солнечную систему в понедельник сдать и я до конца своей жизни смогу об этом больше не вспоминать

Ответы203850

19 дек 2015, 13:32 247 203850

>>203849
> мне эту солнечную систему в понедельник сдать и я до конца своей жизни смогу об этом больше не вспоминать
Ничем помочь не могу.

Ответы203853

19 дек 2015, 13:36 248 203853

>>203850
кто бы сомневался, лол

Ответы203854

19 дек 2015, 13:37 249 203854

>>203853
такие посылаторы с их "иди учи %random_lang%" никогда ни с чем помочь не могут, кроме как давать глупые советы)

19 дек 2015, 14:28 250 203861

>>203841
https://www.youtube.com/watch?v=puOTwCrEm7Q&index=18&list=PLW3Zl3wyJwWOpdhYedlD-yCB7WQoHf-My

Не помню, постил или нет.

Ответы203862

19 дек 2015, 14:42 251 203862

>>203861
Да, я смотрел это, но увы у меня ничего не вышло.
В будущем хочу попробовать через геометрический шейдер их генерировать.
https://stackoverflow.com/questions/8608844/resizing-point-sprites-based-on-distance-from-the-camera

1003 Кб, 977x725
19 дек 2015, 19:17 252 203896

Исправил биллборды:
http://www.opengl-tutorial.org/ru/intermediate-tutorials/billboards-particles/billboards/#solution-2--the-3d-way
Теперь чотко.

1,9 Мб, webm,
972x790
20 дек 2015, 10:22 253 203978

Хенда хох!

Ответы203990

20 дек 2015, 12:34 254 203990

>>203978
тебе нужно сделать эффект выстрела из дробовика и более плавную анимацию у бота после выстрела

Ответы204000

20 дек 2015, 14:25 255 204000

>>203990
Ноу щит шерлок!

249 Кб, 1010x762
20 дек 2015, 14:52 256 204005

Аноны, в универе предложили несколько тем, связанных с рендерингом. Некоторые из них кратко: запилить сглаживание для объемной визуализации (3д-текстура); антиалясинг для depth peeling; исследовать инструментарий или запилить свой для работы с блоком шейдеров.
Для меня интересно разобраться в этой теме, но я пока крайне поверхностно шарю в этом.
Вопрос в том, с чего начать изучение рендеринга? Если я просто научусь работать с OpenGL по туториалам, то хватит ли мне знаний, чтобы уверенно разбираться в этом и нормально запилить задания? Или нужно более глубокие знания OpenGL? Или вообще стоит начать с каких-то вообще азов рендеринга? Если так, то какие ресурсы или книги можете посоветовать для этого?

Ответы204010204012204015

20 дек 2015, 15:09 257 204010

>>204005
Хера се у вас универ, я прям завидую.
Насчет изучения рендеринга, то я бы посоветовал начать с изучения rendering pipeline (можно даже начать со статьи в википедии https://en.wikipedia.org/wiki/Graphics_pipeline, и дальше по ссылкам). И параллельно делай туториалы, да. И параллельно читай спецификации (например OpenGL https://www.opengl.org/registry/doc/glspec43.core.20120806.pdf . Да, спецификации написаны довольно сложным языком, но если сможешь осилить и понять, что там написано, то это будет громадный бонус). Также учи матан: матрицы, векторы, вот это все.
По темам, гугли whitepapers: много умного народа уже наверняка глубоко исследовала эти темы, так что сначала полезно изучить все достижения в этой области, прежде чем пилить свой велосипед.

Ответы204036

20 дек 2015, 15:11 258 204012

>>204005
> Если я просто научусь работать с OpenGL по туториалам, то хватит ли мне знаний, чтобы уверенно разбираться в этом

Зависит от твоих познаний в математике и (что куда более важно) умении её применять.

Ответы204036

20 дек 2015, 15:13 259 204015

>>204005
На Хабре был цикл статей "Пилим свой ОпенЖыЭль", погугли.

Ответы204036

20 дек 2015, 18:01 260 204036

>>204010
Спасибо за инфу, буду изучать.

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

>>204015
Это http://habrahabr.ru/post/248153/ ? Обзорно просматривал как-то, но думаю теперь подробнее разобраться и закодить все самостоятельно.

26 дек 2015, 21:46 261 204945

Годнота!
http://philipbuuck.com/announcing-handmade-quake
https://www.youtube.com/user/philipbuuck/videos

Ответы204968

27 дек 2015, 02:17 262 204968

>>204945
https://www.youtube.com/watch?v=HQYsFshbkYw
Слишком много лишнего. Это гораздо шустрее.

Ответы204969

27 дек 2015, 02:20 263 204969

>>204968
А, я в глаза долблюсь, тред про OpenGL.

14 Кб, 992x694
27 дек 2015, 14:11 264 204995

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

http://pastebin.com/riYEtR8J

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

Ответы205025205030

27 дек 2015, 15:41 265 205025

>>204995
Потому что VAO и должен быть фиксированный, размеры куба нужно менять матрицами преобразований.

Если у тебя тысяча VAO для тысячи кубов - неудивительно, что они тормозят.

Ответы208314

27 дек 2015, 15:53 266 205030

>>204995
> Почему когда я делаю их порядком тысячи, начинает тормозить?
Юзай инстансинг.

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

Ответы208314

9 янв 2016, 18:36 267 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/

Ответы207309

9 янв 2016, 19:30 268 207309

>>207300
Первая и вторая ссылки вроде норм.
Я по этому начал изучать: http://www.learnopengl.com/
Там и про сборку библиотек написано, и про пайплайн с шейдерами написано, и за математику вроде годно поясняется, и в конце уроков даже небольшие упражнения на закрепление материала есть.

Ответы207310

9 янв 2016, 19:34 269 207310

>>207309
Спасибо за ссылку, бро. Наверное, это лучший вариант.

14 янв 2016, 21:16 270 208190

Я щас чота пиздану, тока сильно не бейте - Как сделать освещение P.T. в opengl/glsl? Чот один примитив находится в уроках, а нужен направлющий толчок.

Ответы208423208560

15 янв 2016, 19:57 271 208314

>>205025
>>205030

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

А еще насчет текстуры. Почему-то мои кубы просто игнорят ее бинд. Я же должен для каждого куба бинд делать?

Ответы208360

16 янв 2016, 05:31 272 208360

>>208314
> Я же должен для каждого куба бинд делать?
Оно несколько иначе работает.
Биндишь текстуру и рисуешь свои кубы.
То есть текстура биндится один раз в определённый слот я про glActiveTexture перед отрисовкой.

> Получается для каждого класса я буду делать свой VAO? Типа для куба, треугольника, и.т.д?
Не. VAO помогает тебе устанавливать атрибуты для рисования glEnableVertexAttribArray, glVertexAttribPointer.
То есть есть смысл именно в том, что ты объединяешь при помощи этого VAO меши с похожими атрибутами.

16 янв 2016, 12:37 273 208423

>>208190
Там по идее PBR+GI, дико комплексная система. Простым glsl не обойтись.

Ответы208500

16 янв 2016, 19:41 274 208500

>>208423
>pbr
Это ты о photorealistic based render?
>gi
А это что?

16 янв 2016, 22:26 275 208560

>>208190
> освещение P.T.
Там дохера всего. Если брать только core, то это physics based shading + global illumination. Остальное уже всякие SSAO и прочее. Если ты не работал и не знаешь, как обстоят дела с артом в ААА на западе, то я тебе поясню: шейдера и постэффекты делают художники, а не программисты. Их не копипастят из интернета. Программисты только оптимизируют всякое гавно + фичи.

Ответы208605

53 Кб, 1280x720
17 янв 2016, 08:22 276 208605

>>208560
> physics based shading
> делают художники, а не программисты

Ответы208643

17 янв 2016, 15:26 277 208643

>>208605
> мемы-мемаски
> обоссаные /gd-асики
Если ты умеешь только в буквы-слова, а не смысл и опыт, то мне тебя жаль.

Ответы208653

17 янв 2016, 16:19 278 208653

>>208643
>мам мемы
>мне тебя жаль
Бревно в глазу

Ответы208682

17 янв 2016, 18:19 279 208682

>>208653
Какое же ты быдло обоссаное. Если ты пишешь свой движок, то ты пишешь pbr+gi сам. Если делаешь игру на движке, то всё делает лайтинг/енвайромент артист в редакторе.

Ответы208852

18 янв 2016, 12:25 280 208852

>>208682
Чот ты ваще куда-то увильнул

16 фев 2016, 20:52 281 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.

Ответы225610225677

16 фев 2016, 21:23 282 225610

>>225592
постепенно наполняют гитхаб. это радует

16 фев 2016, 22:49 283 225677

>>225592
Функции с десятком параметров. Они это серьезно? Как можно было превратить няшный OpenGL в это?

Ответы225694

16 фев 2016, 22:58 284 225694

>>225677
А что за функции ты имеешь ввиду?
Может они один раз при создании контекста или около того вызываются?

Ответы225786

16 фев 2016, 23:46 285 225786

>>225694
vkCmdWaitEvents. Сколько бы раз не вызывались - это мало похоже на качественный API. А обилие структурок до боли напоминает DirectX.

Ответы226753

17 фев 2016, 22:44 286 226753

>>225786
В плюсовом враппере первый аргумент уйдет, так как это будет метод класса, три пары переменных "количество хреней-указатель на хрени" заменят векторы хреней. Ну и количество аргументов нифига не будет самой большой проблемой при программировании движка на вулкане. Да что же всё так лагает с бета-драйвером? Амуда, пожалуйста.

Ответы226849

18 фев 2016, 01:56 287 226849

>>226753
> Да что же всё так лагает с бета-драйвером? Амуда, пожалуйста.
А мой видюхи в бета драйверах вообще нету почему-то хотя писали, что вулкан будет работать на видео с огл 4 и выше.

20 фев 2016, 16:24 288 229497

В шейдерах только матрица проекции? Model-view матрица все еще в приложении?

Ответы229537

20 фев 2016, 17:21 289 229537

>>229497
Штоу?

21 фев 2016, 22:51 290 231372

Как структурируется обычно в опенгл?. Вот, например, модель персонажа - она целиком в одном vao?

Ответы232058

22 фев 2016, 14:22 291 232058

>>231372
Что ты имеешь ввиду?
Объясни поподробнее.

22 фев 2016, 17:50 292 232407

>>195365 (OP)
Нвидиа как всегда
https://devtalk.nvidia.com/default/topic/917161/vulkan/fermi-support-/

26 фев 2016, 09:56 293 238176

Как организуется связь с gpu-ram при виртуальном текстурировании? Загрузка страниц в gpu-ram по требованию? glTexImage2D и тд

67 Кб, 600x901
4 мар 2016, 23:41 294 241603

Бамп!

Ответы242450242740

5 мар 2016, 01:31 295 241631

В какой момент расжимаются сжатые текстуры?

7 мар 2016, 22:52 296 242450

>>241603
Они же не будут крутиться?

Ответы242472

7 мар 2016, 23:16 297 242472

>>242450
Ты же не инженер!

Ответы242484

7 мар 2016, 23:39 298 242484

>>242472
!Инженер я не ты журнал?!

8 мар 2016, 13:39 299 242740

>>241603
Они не будут крутиться. лол

Ответы242744242822

8 мар 2016, 13:55 300 242744

>>242740
ну так Россия же
книга по погроммированию с обложкой на которой бесконечной цикл
книга по тридэмаксу с обложкой на которой лента мёбиуса
книга по пикселарту с обложкой на которой кисточка и палитра

Ответы243181243186

8 мар 2016, 20:11 301 242822

>>242740
Дебилы без пространственного мышления, откуда вы лезите?

Ответы242828

8 мар 2016, 20:21 302 242828

>>242822
Если они у тебя крутятся то обратись к психиатру.

Ответы242861

8 мар 2016, 22:08 303 242861

>>242828
Поехавший, попробуй представить, что верхний левый - заводила. И посмотри. Если не можешь, у тебя явно проблемы.

мимокрок

Ответы242864242985

8 мар 2016, 22:12 304 242864

>>242861
>центральня симметрия
>верхний-левый
дебил

Ответы242880

8 мар 2016, 22:32 305 242880

>>242864
>думает, что эта хуйня может крутиться только так, как ходит часовой механизм
>всерьёз называет кого-то дебилом

130 Кб, 600x901
9 мар 2016, 07:58 306 242985

>>242861
Теперь рассказывай как оно все крутится в твоем воспаленном могзгу.

Ответы242986243019

9 мар 2016, 08:01 307 242986

>>242985
ну эт
ортографик вью
камеру сверху
и они смещены по высоте
наибали тип))))

Ответы242987243037

9 мар 2016, 08:04 308 242987

>>242986
Затралели лалок вапще))))))))))

9 мар 2016, 08:43 309 243019

>>242985
Дебил без пространственного мышления чирикает красными стрелочками.

Ответы243025243026

sage 9 мар 2016, 08:47 310 243025

>>243019
>мам смотри я тралю

Ответы243031

9 мар 2016, 08:48 311 243026

>>243019
> пространственное мышление
> загадка уровня /b

Ответы243039

9 мар 2016, 08:54 312 243031

>>243025
Представь, что верхний-левый - заводила и все не ограничивается вариантом, когда они ходят, как часы. Напряги хоть раз свой мозг.

9 мар 2016, 09:00 313 243037

>>242986
>ортографик
>тени

Ответы243064

9 мар 2016, 09:12 314 243039

>>243026
Эксперимент
https://2ch.hk/b/res/119374864.html (М)

Ответы243063

9 мар 2016, 09:59 315 243063

>>243039
> #2
> Они в одной плоскости?
топ мхех
не зря я сидел в /b

9 мар 2016, 10:03 316 243064

>>243037
амбиент окклюжн вместо теней
селф-иллюминейшен на 100%

9 мар 2016, 15:53 317 243181

>>242744
Что не так с лентой Мёбиуса?

Ответы243183

9 мар 2016, 15:55 318 243183

>>243181
в 3дмаксе сделай

Ответы243185243187

9 мар 2016, 15:56 319 243185

>>243183
В блендере могу.

9 мар 2016, 16:01 320 243186

>>242744
> ну так Россия же
Дизайнеры же.

7 Кб, 300x168
9 мар 2016, 16:02 321 243187

>>243183
Легко.

Ответы243191

9 мар 2016, 16:14 322 243191

>>243187
я обосрался, обтеку ща
группы сглаживания работают? а хотя хуле им не работать, да

10 мар 2016, 04:23 323 243413

251 Кб, 2706x1144264 Кб, 846x227

Лол, чёт я нихрена не понял, а как мне не делить вертикальную синхронизацию между всем программами на opengl?
Сочетания dx+gl/dx+dx уживаются спокойно друг с другом. Но gl в количестве больше одного стакается с другими, пусть там что мои программы, что чужие игры.
Первый пик, всё на gl, второй - три игры на dx.

Ответы244543

5,7 Мб, webm,
960x540
10 мар 2016, 23:54 324 243723

Живительные кубы в тред.

Ответы243729243731243736

399 Кб, 1366x724
11 мар 2016, 00:16 325 243729

>>243723
Вот тебе ещё копрокубы, засранец.

11 мар 2016, 00:20 326 243731

>>243723
Спасибо, повалялся 5 минут в конвульсиях.

11 мар 2016, 00:35 327 243736

>>243723
А код покажешь?

Ответы243743

38 Кб, 862x688
11 мар 2016, 00:58 328 243743

>>243736
Аттрактор Лоренца, в остальном почти всё как на learnopengl.

11 мар 2016, 15:05 329 243912

А в чём суть новых версий gl? Каждая версия это просто некоторый минимум поддерживаемых расширений, или что?
Я просто много лет инициализирую gl как версию 1.0, а к всяким шейдерам/хуэйдерам как к расширениям отношусь. По скорости вроде как всё соотвествует чужим программам, никаких недостатков. В чём разница, зачем нужны версии, кроме как чтоб кратко говорить о примерном уровне карты?

Ответы243917

59 Кб, 610x344
11 мар 2016, 15:28 330 243917

>>243912
glew, glm. Ниже не имеет смысл копать. Всё есть в коде этих либ, если захочешь глубоко копнуть.
> В чём разница
C opengl 2.0 появился программируемый пайплаин. А это +100 человек в отделе рендера и +10000 больше строк кода + шейдеров для норм картинки. Фактически это ёба-монст для графона. OpenGL 5 = OpenGL 1 + тоны расширений от всяких ати-нвидиа.

Ответы243960

11 мар 2016, 16:40 331 243960

>>243917
А что можно сделать эдакого с помощью геометрических шейдоров?

Ответы244212

12 мар 2016, 15:12 332 244212

>>243960
Генерировать геометрию на лету.

Ответы244237

12 мар 2016, 16:56 333 244237

>>244212
Покажи пример, чтобы я обоссался

Ответы244254

12 мар 2016, 17:42 334 244254

>>244237
https://stackoverflow.com/questions/8608844/resizing-point-sprites-based-on-distance-from-the-camera

Ответы244279

12 мар 2016, 18:23 335 244279

>>244254
Но ведь для этого не требуется геометрический шейдер вовсе.
Не знаю как сейчас, но несколько лет назад геометрические шейдеры были очень тормозные, так как из-за них карте неизвестно заранее сколько геометрии нужно будет рисовать, и использовать их для изменения размеров спрайтов по меньшей мере неэффективно. Так то, спрайты в зависимости от расстояния до камеры можно было менять ещё даже через низкоуровневый вершинный шейдер, который ARB_vertex_program, когда про glsl никто ещё даже не слышал.

Ответы244306244320

12 мар 2016, 20:13 336 244306

>>244279
>из-за них карте неизвестно заранее сколько геометрии нужно будет рисовать
>layout (triangle_strip, max_vertices = 4) out;
>max_vertices
Передаем точку из неё геом шейдер делает парочку треугольников. Выгода.
Мимо

12 мар 2016, 20:46 337 244320

>>244279
Слышал, то ли в скайриме, то ли в крузисе снег на деревьях генерировали шейдором.

Ответы244377

12 мар 2016, 22:29 338 244377

>>244320
Это называется частицы.

Ответы244451

13 мар 2016, 08:49 339 244451

>>244377
Текстуры, а не частицы.

Ответы244462

13 мар 2016, 09:52 340 244462

>>244451
Шейдер.

26 Кб, 655x702
13 мар 2016, 12:14 341 244490

Почему у opengl такое отставание?

Ответы244493244497244543244576244623258975

13 мар 2016, 12:23 342 244493

>>244490
Дело в дровах.

13 мар 2016, 12:36 343 244497

>>244490
Почему обычно тормозит кривое кириллоговно?

13 мар 2016, 14:59 344 244543

>>244490
За openGL никто не следит. Он открытый, микрософтам например не выгодно делать чтоб openGL был каким-то популярным, так как тогда куда большая часть игр перекатится на люниксы или ещё куда, и со всякими нвидиями у них договор какой-нибудь, быть может.
Мне кажется дело в дровах. Вот такой баг есть (>>243413 ), например. Я в /pr поспрашивал, у кого-то всё в норме, у кого-то такой же эффект. Помимо этого, OBS не может захватывать программы на openGL. Причём, если запускать те же программы на встроенной карте от интела, всё работает. Что синхронизация в норме, что obs изи захватывает. То есть проблема конкретно в драйвере нвидии, и видимо с быстродействием что-то подобное. А с dx везде всё работает правильно, и захватывается всё как надо.

Ответы244546

13 мар 2016, 15:15 345 244546

>>244543
>большая часть игр перекатится на люниксы

Ты такой дегенерат, что просто пиздец. Даже так - пизденящий душу пиздец. Кому твоя ссаная прошивка для роутеров нужна, у которой доля на десктопах - в пределах погрешности измерений?

Ответы244553

13 мар 2016, 15:26 346 244553

>>244546
Большая часть не в смысле, что >50%, а в смысле что несколько более крупная доля игр, чем сейчас. Я же написал "куда большая", что говорит конкретно какое значение я имел ввиду. Например 15%, заместо 5%.
>Ты такой дегенерат, что просто пиздец.
Ага. Я не разбираясь в теме с потолка предположил первый бред который в голову пришёл, по идее то микрософтам вообще может не быть дела до OpenGL.

13 мар 2016, 17:19 347 244576

>>244490
DX на win, xbox
у PS3-4 вообще своё PSGL/LibGCM
на мобилах Unity
Фактически, OpenGL никто не юзает кроме фриков

Ответы244577244625

14 Кб, 232x310
13 мар 2016, 17:25 348 244577

>>244576
>на мобилах Unity

Ответы244578

13 мар 2016, 17:41 349 244578

>>244577
Ладно, уговорил. Мобилы, линукс, фрики.

13 мар 2016, 21:16 350 244623

>>244490
Нахуя тебе больше 60 fps в игре? Все равно твой ссаный монитор физически не выдаст больше 60-75 кадров в секунду.

Ответы306342

13 мар 2016, 21:20 351 244625

>>244576
> на мобилах Unity
Юнити лишь движок, а вот графическая часть в нём как раз таки на опенгл.
Ты долбаёб или прикидываешься?

Ответы244647

13 мар 2016, 23:03 352 244647

>>244625
> а вот графическая часть в нём как раз таки на опенгл
Нет. То есть, он может в гл, но если можно, то работает на дх.

Ответы244656

13 мар 2016, 23:38 353 244656

>>244647
> то работает на дх
Как он на андроиде или айос/мак будет работать на дх?

115 Кб, 680x376
14 мар 2016, 11:48 354 244745

Пилю свой кириллодвижок. Где почитать про буферы и шейдеры?

Ответы244761244765

14 мар 2016, 12:55 355 244761

>>244745
ОП пост для кого составлен?

14 мар 2016, 13:08 356 244765

>>244745
готовишь анус для снульчеканкурса?

22 Кб, 500x500
19 мар 2016, 15:13 357 246578

Объясните ка мне тупому по простому что такое: normalized device coordinate (NDC) space, clip-space, and window space.

Ответы306344

34 Кб, 200x177
6 апр 2016, 19:01 358 251387

http://pastebin.com/r0Bd2Yih
Что я делаю не так?
c#
Tao (обертка над GLUT)
gl4csharp (обертка над GL)
Качество кода, комментов и прочее - говно, ведь я ебаный ньюфаг.
Скажите лучше что не так с ГЛ вызовами.
По итогу я вижу только заливку и ИНОГДА в центре бывает одна точка.

Ответы251402251411251503252499

6 апр 2016, 19:51 359 251402

>>251387
Попробуй glgeterror потыкать.

Ответы251409

6 апр 2016, 20:05 360 251409

>>251402
No Error

6 апр 2016, 20:10 361 251411

>>251387
>Что я делаю не так?
Используешь gl

>>251387
> я вижу только заливку и ИНОГДА в центре бывает одна точка.
А ты что надеялся увидеть, crysis?

7 апр 2016, 02:05 362 251503

>>251387
Вьюпорт за тебя либа делает?

12 апр 2016, 00:29 363 252499

>>251387
>> 41. Gl.VertexAttribPointer
>> ...
>>156. Gl.BindVertexArray(VAO);
VAO надо биндить до вызовов VertexAttribPointer

Ответы252500

12 апр 2016, 00:29 364 252500

>>252499
>> 141. Gl.VertexAttribPointer
>> ...
>>156. Gl.BindVertexArray(VAO);
VAO надо биндить до вызовов VertexAttribPointer

fix

Ответы252502

12 апр 2016, 00:32 365 252502

>>252500
алсо поставь себе деббагер
https://developer.nvidia.com/nvidia-nsight-visual-studio-edition

23 апр 2016, 07:11 366 253993

Линукс сосет

Ответы256411

7 мая 2016, 11:26 367 256409

Ананасы, почему не заводится? Вроде бы все правильно сделал, или нет?
http://pastebin.com/BvvC8pHF

Ответы256412256422

7 мая 2016, 11:32 368 256411

>>253993
Схуяли? Все там норм с опенглем. Есть проприетарные нвидиевские драйвера.

7 мая 2016, 11:33 369 256412

>>256409
Ананас, тебя кто научил дергать АПИшные функции и не обрабатывать ошибки?

Ответы256414

7 мая 2016, 11:36 370 256414

>>256412
Ну я только начал. Читаю Addison Wesley: OpenGL Programming Guide. Он там уже про 4.3 кряхтит что-то с самого начала и шейдер загоняет сразу же. Сорцов не искал его и посмотрел, как в на офсайте опенгл загружают шейдеры, сделал по подобию.

Ответы256417

7 мая 2016, 11:46 371 256417

>>256414
Юзай glGetError после каждого (почти) вызова.

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

В твоей книге, кстати, в самом начале есть пример, как вытаскивать ошибки компиляции шейдеров. Сделай такую штуку у себя. Вообще сделай инфраструктуру для обработки ошибок, потом сам себе спасибо скажешь.

Ответы256421

7 мая 2016, 12:02 372 256421

>>256417
Зачем после каждого? Либо вызовы оборачивать в макрос, либо дёргать один раз в конце кадра, а там уже разбираться.

Ответы256424

7 мая 2016, 12:06 373 256422

>>256409
>> glEnableVertexAttribArray(0);
вот на этом месте какую-то хуйню написал, вместо нуля, который, как я понимаю, ставится в соответствие vPosition шейдера

7 мая 2016, 12:15 374 256424

>>256421
Ну, потому что любой вызов может быть неуспешным. Если вызывать в конце, ты не разберешься потом, какой именно.

Я у себя запили макрос HANDLE_OPENGL_ERRORS, который втыкаю после каждой функции. Он мне в случае чего кидает исключение с именем файла, номером строки и ошибкой. Можны и вызовы в макросы завернуть, конечно.

8 мая 2016, 16:23 375 256777

Пиздякнул тут на досуге оберточку для себя. Может кому надо будет.
http://pastebin.com/xgCEtfLY

Ответы256906257916258988

9 мая 2016, 08:29 376 256906

>>256777
Сделал меня грустить. Я раньше С++ очень хорошо знал, но за 5 последних лет багфиксинга в больших корпорациях безнадежно отстал от жизни.

Ответы258989

13 мая 2016, 06:19 377 257916

>>256777
Есть версия чуть проще.
http://pastebin.com/aBs2Xqat

Ответы257919

13 мая 2016, 06:49 378 257919

>>257916
> strcpy( str, "GL_INVALID_FRAMEBUFFER_OPERATION" );
Норкоман?

Ответы258066

sage 13 мая 2016, 16:57 379 258066

>>257919
Не говоря уже о том, что все case повторяются, и их можно было препроцессором сгенерить, а не полагаться на копипаст.

14 мая 2016, 08:11 380 258158

Если я хочу воксели пердолить, то обязательно CUDA использовать, или можно без неё нормального фпс добиться?

15 мая 2016, 08:31 381 258375

Аноны, поясните, пожалуйста, мне вот за такую херню. Читаю сейчас тут супербиблию 7 опенгл . Там тип рассказывает, как биндить VAO, сначала биндит буфер, потом VAO и далее:
glVertexArrayBinding
glVertexArrayAttribFormat
glEnableVertexArrayAttrib

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

В чем профит первого способа, если он длиннее получается?

Ответы259546

52 Кб, 700x516
16 мая 2016, 11:21 382 258652

объясните по-хардокору: для чего нужно это все? Это типа все на очень низком уровне? Если да, то зачем? Если нет, то зачем?

Ответы258746260481

16 мая 2016, 15:30 383 258746

>>258652
Это ВЕСЕЛО, слышал такое слово?

Ответы258749258901

16 мая 2016, 15:42 384 258749

>>258746
У меня тут от книг гл-овских пукан горит. Ох и весело же )

17 мая 2016, 10:18 385 258901

>>258746
недостаточно хардкорно.

17 мая 2016, 16:08 386 258975

>>244490
Как можно сравнивать разные API в каком-то там движке, где непонятно как используются функции этого самого API.

Ты уверен что разработчики запилили все как нужно? У тебя есть код? Есть четкое понимание как это делается на DirectX и OpenGL?

17 мая 2016, 16:49 387 258988

>>256777
Если я хочу просто вызвать glFunc, твой макрос думаешь заработает?

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

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

К тому же, его можно самому написать!

Ответы259360

17 мая 2016, 16:50 388 258989

>>256906
Ничего такого! Лямбды и автоподставление типов компилятором.

18 мая 2016, 18:41 389 259360

>>258988
Мне пока и так сойдет. А про дебажную версию я вообще не знал

19 мая 2016, 17:29 390 259546

>>258375
> В чем профит первого способа, если он длиннее получается?
http://stackoverflow.com/a/21652955

20 мая 2016, 19:52 391 259797

Ананасы, подскажите, пожалуйста, почему не заводится. Рисую в image2D, но, первое - не биндится image2d (invalid operation выдает, но вот схуяли, даже в руководстве нет такой хуйни), а второе - в шейдере где-то косяк, но это, мне кажется, уже отсылка к первому.
http://pastebin.com/X46RMZ3c

Ответы259807

20 мая 2016, 20:17 392 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

Ответы259813

20 мая 2016, 20:26 393 259813

>>259807
Бля, ну и насрал же я тут. Извините. Вот эта залупа уже хочет работать, только вот почему все упирается в ограничение на 1024 элемента (для вычисления, естественно)? Его можно обойти, или для таких случаев использовать OpenCL? Только вот тут поебота - надо будет интероп писать.
http://pastebin.com/RjRg02YH

Ответы259837260023

20 мая 2016, 23:31 394 259837

>>259813
NVIDIA не может в человеческий OpenСL, так что не поможет. Есть ограничение на количество потоков (по видимому, 1024, но можно как-то запросить). Делаешь цикл, чтобы каждый поток обрабатывал несколько элементов с шагом в 1024.

Ответы259859

21 мая 2016, 06:58 395 259859

>>259837
У меня видюха от AMD, а на работе делаю софт под CUDA, вот же ирония вышла.

5 Кб, 251x201
21 мая 2016, 17:43 396 260003

Я вот думаю на чем писать свою игру, с одной стороны я неплохо знаю opengl es но с другой стороны он – устаревшее говно и пора бы уже переходить на Vulkan, он гораздо производительней, но и гораздо сложнее и более низкоуровневый, думаете стоит заморочиться и сделать рендерер на вулкане?

Ответы260014260021260041

21 мая 2016, 18:16 397 260014

>>260003
AMD'шники соснут, потому что с их дровишками OpenGL 4.5 доступен только для HD7000 серии и выше, а у Nvidia от 400 и далее. Вообще, бесит меня политика AMD в плане поддержки железа. Конченая компания.

Ответы260019260021

21 мая 2016, 18:49 398 260019

>>260014
Да ладно, а вот у АМД вулкан с 7к у хуанга с 700, хотя в общем понятно, что это все нахер не нужно кроме как для AAA.

21 мая 2016, 18:54 399 260021

>>260014
HD 7000 в 2013 вышли. То, что старше, уже дрова же.
>>260003
Чтобы сделать движок на Вулкане быстрее AZDO OpenGL, нужно быть готовым маленькие куски переписывать под каждого вендора. Тык этому готов?

Ответы260022

21 мая 2016, 19:03 400 260022

>>260021
>Чтобы сделать движок на Вулкане быстрее AZDO OpenGL, нужно быть готовым маленькие куски переписывать под каждого вендора.
С какого перепуга? Производительность вулкана выше уже по дефолту так как можно управлять синхронизацией и командными буфферами.

Ответы260027

21 мая 2016, 19:10 401 260023

>>259813
Так, продолжаю запускать говнопримеры. В общем, настроил вычислительный шейдер, 1024 элемента, да и хуй бы с ним, тут у меня invalid enumeration валится при использовании glGetTexImage
http://pastebin.com/jYZjRXM5

21 мая 2016, 19:22 402 260027

>>260022
Дрова под OpenGL пилятся уже 20 лет. Ты правда думаешь, что сможешь их превзойти?
http://32ipi028l5q82yhj72224m8j.wpengine.netdna-cdn.com/wp-content/uploads/2016/03/Practical_DX12_Programming_Model_and_Hardware_Capabilities.pdf

21 мая 2016, 20:38 403 260041

>>260003
> с одной стороны я неплохо знаю opengl es но с другой стороны он – устаревшее говно и пора бы уже переходить на Vulkan
По моему ты просто даун.
Спецификация Вулкана вышла буквально несколько месяцев назад.
Чтобы что-то делать на Вулкане и чтобы это было доступно конечный продукт имеется ввиду как можно большему числу пользователей, пройдёт ещё несколько лет.

23 мая 2016, 21:11 404 260475

>>195365 (OP)
Вкатываюсь с андроидодерьмом.

Ответы260477

23 мая 2016, 21:20 405 260477

>>260475
Так, полистал тред. Ничего для быстрого старта под ведроид не нашел. Поясните, с чего начать?

Ответы260552260629

23 мая 2016, 21:24 406 260481

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

24 мая 2016, 06:50 407 260552

>>260477
OpenGL ES

24 мая 2016, 14:33 408 260629

>>260477
OpenGL ES 3 Cookbook с нее можешь начать. Там все просто расписано и применимо к OpenGL настольному (хотя у кастрата есть модификаторы точности и прочая хуйня). А вот книгу с начала поста, которая идет офиицальным руководством OpenGL вообще не советую читать - просто каша. Супербиблия неплохая, но для начала тоже не самый хороший вариант, тем более что примеры, которые там приведены рассматриваются крайне скудно и больше времени уделяется на описание API как такового.

30 мая 2016, 21:37 409 261799

Привет парни.

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

glEnableVertexAttribArray
glVertexAttribPointer

?

Потому что работает и так и так, что странно

Ответы261807

30 мая 2016, 22:44 410 261807

>>261799
Ниважн там кароч праверка етих флагов када идет вызов draw т.е. перед драв калом вызывать над кароч.

31 мая 2016, 17:08 411 261948

>>261877
братишка я тебе звездочек принес:

*

ALT + 42

Ответы261949

31 мая 2016, 17:09 412 261949

>>261948
а нихуя, даже так на этой параше не работает

31 мая 2016, 17:18 413 261958

>>261877
читни про VAO

31 мая 2016, 19:23 414 262044

>>261877
Ты можешь все индексы в один IBO запихнуть.
И в последнем параметре glDrawElements указывать смещение в байтах от начала буфера (IBO).

Даже можно все модели запихнуть в один VBO, но это потом когда разберёшься с этим.
И через http://docs.gl/gl3/glDrawElementsBaseVertex рисовать.

Ответы264100

48 Кб, 1227x819
9 июня 2016, 10:56 415 264100

>>262044
Всегда возникает ошибка в glGenVertexArrays и glGenBuffers. В гугле написано только, что надо поставить glewExperimental = true, но это не помогает. Что здесь не так?

Ответы264141

9 Кб, 494x259
9 июня 2016, 16:41 416 264141

>>264100
Попробуй сначала создавать окошко (наверное, где-то внутри в нём создаётся контекст).
Типо так.

Ответы264185

59 Кб, 1331x855
9 июня 2016, 20:18 417 264185

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

Ответы264194264211

9 июня 2016, 20:33 418 264194

>>264185
дрова поменяй

Ответы264210

9 июня 2016, 21:31 419 264210

>>264194
Установил последние, все по-прежнему.

9 июня 2016, 21:46 420 264211

>>264185
Попробуй.
http://pastebin.com/raw/5M9Y4zQy

GL.h и GLU.h убери.
Вся эта ебалайка есть уже в glew

Ответы264213

9 июня 2016, 22:13 421 264213

>>264211
У меня "OpenGL 3.3 API is not available". Это не исправляется никак? У меня около года назад все работало нормально, с тех пор я не трогал опенгл, и все забыл. Взялся заново, а тут такая хуйня. Думал, может проблема с подключением библиотек или еще чего.

Ответы264214

9 июня 2016, 22:21 422 264214

3 Кб, 325x9623 Кб, 471x639

>>264213
> Думал, может проблема с подключением библиотек или еще чего.
Проверь пути к либам, подключаются ли они и тд.

Алсо, также в папке у глева есть бинарники.
Запусти glewinfo. Глянь какой там вывод.

Ответы264217

25 Кб, 1407x671
9 июня 2016, 22:42 423 264217

>>264214
С путями все нормально, иначе тогда ошибка была бы во время линковки. Бинарник glew32.dll (других же нет?) перекинут в директорию проекта. glewinfo вот.

Ответы264218264219

9 июня 2016, 22:46 424 264218

>>264217
Я все понял, у меня же дефолтный процессор интеловский, а не нвидиа. Переключил, теперь все работает. Спасибо за наводку.

9 июня 2016, 22:49 425 264219

>>264217
Попробуй этот код:
http://pastebin.com/raw/qBydzL7v

Скорее всего ты проебался с
glfwMakeContextCurrent( win );
Я не видел его у тебя в коде выше.

Ответы264221

9 июня 2016, 23:38 426 264221

>>264219
Спасибо, но и без этого все тоже работает. Проблема была в графическом процессоре. Код, который у меня, теперь работает нормально.

14 июня 2016, 18:17 427 264900

Короче, решил тут я себе BuGLe подтянуть, вытянул сорцы, значит, вытянул с репа gtk2-devel (сьюзи у меня), и что бы вы думали - а хуй тебе, не гуй.
Короче, поебался я 5 минут тут, три семерки вся хуйня. Не стал искать правильный путь - поменял в SConscript'e gldb:
have_gtk = True
И идут нахуй, все работает сука.

14 июня 2016, 19:23 428 264923

Скажите, пожалуйста, что у меня не так в этом коде. Я уже заебался эти туториалы по 50 раз перечитывать, никак не могу понять, как работают эти злоебучие шейдеры. И туториалов много, так проблема, что везде написано по-разному, что вообще сбивает с толку. И вдобавок ни один из приведенных в них примерах не работает.
http://pastebin.com/EU7pQniF

Ответы264957

14 июня 2016, 20:18 429 264932

270 Кб, 932x791849 Кб, 915x79323 Кб, 500x489

Пытаюсь разобраться с наложением текстур, делая лабу для вуза.
Не могу понять как сделать так, чтобы одна текстура натягивалась на несколько полигонов сразу. Не повторялась, а именно чтобы например на квадрате 5x5 лежал один кусок текстуры.

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

Но что с остальными примитивами делать я не знаю, их я строил функциями из glu glut, а не своими.

Ответы264957264970

14 июня 2016, 22:53 430 264957

>>264923
Попробуй вот это:
http://pastebin.com/raw/zyyAsTNM

>>264932
> Не могу понять как сделать так, чтобы одна текстура натягивалась на несколько полигонов сразу. Не повторялась, а именно чтобы например на квадрате 5x5 лежал один кусок текстуры.
Передавай в шейдер сразу 2 текстуры.
И для какой-то из них ебашь текстурные координаты для твоего прямоугольника.
Ну или рисуй в том месте ещё полигоны и натягивай на них нужную текстуру.
Но тогда может возникнуть такая проблема:
https://upload.wikimedia.org/wikipedia/commons/5/5f/ZfightingCB.png

15 июня 2016, 00:44 431 264970

>>264932
> glVertex
> glNormal
Почему не залить всё в GPU и на мучить драйвер сто лет как устаревшим API?

Ответы265280

16 июня 2016, 15:34 432 265280

>>264970
дак енто ж ДЕЛФИ
я сразу чет не узрел, что это код гиар студио, там, поди и GL'а без костылей не поставить нормального.

79 Кб, 782x503
18 июня 2016, 10:39 433 265718

Ребят, я ламер пока что, но забрел вот в такие дербри. Можно ли как то избегать переопределения объекта класса? Или это так и должно быть? Проблема в том, что определение попадает в цикл, где каждые 0.15 секунд инициализируются довольно крупные вещи, а это затратно для ресурсов. Где можно почитать на счет отрисовки множества объектов через классы?

Ответы265732315801315921

18 июня 2016, 11:31 434 265732

>>265718
Ты постоянно буфер перезаписываешь что ли?! Я понять не могу вопроса

Ответы265734

18 июня 2016, 12:09 435 265734

>>265732
приходится...тут display функция уходит в петлю, то есть каждый раз перезаписывается все, что внутри него. мне нужно отрисовать объект. Его конструкция описана в классе. как это сделать грамотно? получается, что каждый раз, когда перерисовывается экран создается заново(!) объект класса, ему снова присваиваются координаты. Так и должно быть или я просто дебил?

Ответы265738

18 июня 2016, 12:22 436 265738

>>265734
У тебя данные BrushBox'а постоянные, или они меняются одинаково, или как они вообще сделаны, внутри то что?

Ответы265749

237 Кб, 1920x977
18 июня 2016, 13:00 437 265749

>>265738
выглядит это как то так.

Ответы265751

18 июня 2016, 13:19 438 265751

>>265749
короче, раз уж у тебя спрайты там отрисовываются, то можно отрисовку спрайтов сделать одной пачкой (за один вызов gl), но при этом рисовать надо будет н устаревшими способами (glVertex, glTexCoord, glBegin/end). Почитай про буферы, там, в целом, все очень просто, да и быстрее работать будет, это однозначно.

Ответы265753

18 июня 2016, 13:23 439 265753

>>265751
окей, спасибо. просто в туториалах обычно не показывают работу с классами ибо там рисуют 1 чайник или 1 кубик. ооп не раскрывается..)

18 июня 2016, 21:09 440 265823

Ищу разработчика движка на OpenGL
Если у кого есть желание оставьте контакты >>264565 (OP)

18 июня 2016, 22:54 441 265834

Кто и что думает на счет Vulkan? Какие у него перспективы?

Ответы265971266018

19 июня 2016, 16:12 442 265971

>>265834
Хорошие перспективы.
Через несколько лет увидим результаты.

19 июня 2016, 19:26 443 266018

>>265834
OpenGL 2.0 для мобилок, веба и индиговна будет жить еще очень долго. Вулкан станет основным API для ААА, если MS будет продолжать тупить с UWP.

Ответы266072

19 июня 2016, 23:15 444 266072

>>266018
Просто я запариваюсь над тем, что начинать учить, чтоб не зря было. Пока что овладел нормально только плюсами и парой тройкой библиотек к нему. Очень хотел юзать opengl, а тут вот говорят лучше вещь сделали.

Ответы266105

20 июня 2016, 08:38 445 266105

>>266072
Вулкан намного сложнее GL, но в целом он намного более продвинут по архитектуре. На нем приятнее писать.
Кстати, палю годноту по вулкану: https://github.com/SaschaWillems/Vulkan

Ответы266131

20 июня 2016, 11:22 446 266131

>>266105
А за это большое спасибо. Разумеется с драйверами 340 из репозитория дебиана оно не встанет? там вроде от 368 версии на картах с opengl 4.5 поддержкой. Это крашит систему. Кто пытался поставить под linux?

30 июня 2016, 10:24 447 270597

Посоны, объясните, пожалуйста, в чем разница использования
>> glClearColor(...)
>> glClear(GL_COLOR_BUFFER_BIT)
и
>> GLfloat color[] = { ... }
>> glClearBufferfv(GL_COLOR, color)

3 июля 2016, 12:13 448 272208

Так, ананасы, вопрос следующий:
Есть, значит, у меня моделька с кучкой материалов (.obj и .mtl файлы, короче), и тут я решил их по-маленьку зарендерить, но вот в чем дело, у GLSL на шейдер ограничение в 16 текстур (вроде и до 32 можно), а вот стандарт .mtl, который вейвфронт замутили, подразумевает наличие до 9 текстур от просто изображения предмета до каких-то залуп (алсо, забавно, что нет маски нормалей, а бампинг есть), так вот. Каким образом мне лучше сделать - мусор повыкидывать (оставить только основную текстуру, бампинга, отражения, прозрачности) или разбить объект на куски (под каждый отдельный материал) и затем рендерить его в несколько проходов (но это получается сильно затратнее), может есть что-то по-лучше, да и вообще нахуя мне столько текстур?

Ответы272522

4 июля 2016, 08:53 449 272522

>>272208
Загрузи все изображения в пространство одной текстуры и сдвинь текстурные координаты у вершин соответственно.

Ответы272564

4 июля 2016, 10:52 450 272564

>>272522
Спасибо.
А что делать для видеокарт, у которых размер текстуры маленький (2к х 2к, к примеру, для модели-то ведь точно хватит, а вот для какого-то ландшафта, например, окажется маловато (если тужа еще запихивать карту бампинга, нормалей, диффузии и пр.)). Херить качество?

Ответы272597272601

4 июля 2016, 12:39 451 272597

>>272564
https://www.opengl.org/wiki/Array_Texture

Ответы272624

4 июля 2016, 12:47 452 272601

>>272564
> если тужа еще запихивать карту бампинга, нормалей, диффузии и пр.
куда ты их запихивать собрался, госпади
Я НЕ КАРТА ВЫСОТ Я ТЕКСТУРКА
НЕ ЗАПИХИВАЙ МЕНЯ, ПОДУМОЙ

Ответы272624

4 июля 2016, 13:52 453 272624

>>272601
Ну ведь бампинг на физическую высоту (имею в виду объекта) не влияет
>>272597
Спасибо, тоже о них подумал, но где-то кто-то пиздякнул мне на ухо, что текстуры массива должны быть одного размера, а оказывается нет.

Кстати, тут еще один вопрос. У меня следующий кусок в шейдере:
http://pastebin.com/MeHspyQ2
Размер структуры равен 76 байт (если посчитать), но gl_uniform_block_data_size показывает, что размер униформа равен 636 байт. Я, так понимаю, 4 байта между структурами добавляется длы 16-байтного выравнивания данных?

Ответы272652272711

4 июля 2016, 14:50 454 272652

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

4 июля 2016, 17:50 455 272711

>>272624
> Размер структуры равен 76 байт (если посчитать), но gl_uniform_block_data_size показывает, что размер униформа равен 636 байт. Я, так понимаю, 4 байта между структурами добавляется длы 16-байтного выравнивания данных?
http://steps3d.narod.ru/tutorials/ubo-tutorial.html

Ответы273389

6 июля 2016, 18:23 456 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
Нихуя не нашел, короче говоря, но зато размер блока выводит, сука. Я вот вкурить не могу, как он их ищет то блять. По имени переменной обратился, по имени блока тоже, даже блять без имени, но все тщетно.

Ответы273721

7 июля 2016, 17:08 457 273721

7 Кб, 802x63226 Кб, 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);
Коричневый цвет сразу уебывает в звенящие дали, оставляя цвет только от первого материала. Видимо, компилятор сделал какую-то охуительную оптимизацию и все накрылось пиздой. Как сделать правильно?

Ответы273722274494

7 июля 2016, 17:09 458 273722

>>273721
Быстрофикс: звездочки перед и после
>> (vs_out.normalCoords.z + 1)
вот этой хуйни

9 июля 2016, 20:12 459 274494

>>273721
А зачем ты так делаешь?
Похоже на какой-то перевод из одного пространства в другое.

Ответы274583

10 июля 2016, 04:31 460 274583

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

Ответы276449

30 Кб, 802x632
12 июля 2016, 13:34 461 276449

>>274583
Делаю шейдеры по книжке одной, охуительно так-то.

Ответы276453

12 июля 2016, 13:39 462 276453

>>276449
Зачем ты нацепил глянец туда, где должна быть матовая поверхность?

Ответы276454276461

513 Кб, 1242x936
12 июля 2016, 13:40 463 276454

>>276453

12 июля 2016, 13:53 464 276461

>>276453
Это не моя модель, я скачал и проверяю работу.

3 авг 2016, 18:28 465 288377

Я просто хотел сказать, что меня ЗАЕБАЛИ шейдеры и GLSL.
Ебучий матан, ебучая тригонометрия, ебучие матрицы, всё руками делать, охуевать трижды, гроб, гроб, кладбище, пидоры, всё.
Спасибо за внимание.

Ответы288527288619310796

36 Кб, 620x520
3 авг 2016, 22:33 466 288527

>>288377
Щито поделать.

4 авг 2016, 02:40 467 288619

>>288377
а по моему это круто, хоть где то есть толк моим знаниям лол

4 авг 2016, 03:43 468 288622

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

Ну или на крайний случай параллельный буфер, допустим выполнили операции установили цвет в gl_FragColor, установили цвет в буфере -> перешли к следующему фрагменту взяли цвет из буфера прошлого фрагмента, выполнили операции, установили цвет в gl_FragColor, установили цвет в буфере -> перешли к следующему

Ответы288710

4 авг 2016, 12:23 469 288710

>>288622
Это вопрос или утверждение?

Ответы288783

4 авг 2016, 15:18 470 288783

>>288710
вопрос как хронить промежуточные данные типа фрагмент -> фрагмент

Ответы288806

4 авг 2016, 15:58 471 288806

>>288783
есть атомики, если тебе нужно в одном проходе хранить данные. Можно зарендерить во фреймбуфер и потом его ебать следующим проходом (так делают тени, и карты отражения, в частности)

Ответы288894

338 Кб, 256x256
4 авг 2016, 20:01 472 288894

>>288806
ладно иначе сформулирую вопрос, с этим у меня проблема
на пике можно увидеть РАЗМАЗЫВАНИЕ, и вот я ни как не пойму как такое сделать в glsl, ну те если бы изображение было бы массивом то все просто, но вот в glsl же иначе

Ответы288896

16 Кб, 496x501
4 авг 2016, 20:08 473 288896

>>288894
> РАЗМАЗЫВАНИЕ
Ты это имеешь ввиду?

Ответы288897

4 авг 2016, 20:11 474 288897

>>288896
ага, мне же нужно обращаться к прошлому измененному значению пикселя на позиции выше

Ответы288923288929289156

4 авг 2016, 22:10 475 288923

>>288897
Не нужно. Это совсем не так делается. Но тебе ещё рано задумываться об этом, раз ты такую простейшую трансформацию осилить не можешь. Рекомендую изучить базу glsl для начала.

Ответы288929288935

4 авг 2016, 22:29 476 288929

>>288923
Тут дело не в glsl, а в алгоритме.

>>288897
То есть ты хочешь получить такие же тени как и на гифке?
Дык можно и проще же сделать.
https://www.youtube.com/watch?v=fsbECSpwtig

Ответы288936288994

4 авг 2016, 23:09 477 288935

561 Кб, 1325x3000483 Кб, 2300x809

>>288923
новичок да, я в общем то и изучаю glsl, а лучший способ учится это же писать код
и так то вот что у меня уже есть
https://www.youtube.com/watch?v=wbIslzIHtss
https://www.youtube.com/watch?v=s_E57cr86YQ

вот только информация на на тему glsl страшно хаотично разбросана по сети и это вызывает некоторые трудности в обучении

Ответы288972

4 авг 2016, 23:12 478 288936

>>288929
о добра тебе

5 авг 2016, 01:14 479 288972

>>288935
Что пилишь?

Ответы288975

5 авг 2016, 01:20 480 288975

>>288972
В идеале должна получиться пиксель арт игрушка с нетривиальным сюжетом в нуаркиберпанк bladerunner сеттинге, с боевкой частично как в child of light, но пока графена нет тк художник учится, а я вот на системой света работаю.

Ответы288976

5 авг 2016, 01:21 481 288976

>>288975
все свое, физика, рендер, итд

5 авг 2016, 01:45 482 288987

>>195968
Веб воркеры работают параллельно. Ты просто отсталый.

5 авг 2016, 02:07 483 288994

>>288929
этот метод не позоволит нормально использовать карту света, да и тени там не очень они общие для всех источников света 0:53
а я хочу как раз имея на входе карту света, для каждого исочника света ее по своему модифицировать (добавляя тень) и уже потом просто рендерить сам свет
так даже дешевле будет чем то что на видео, но вот я никак не пойму как это размазывание реализовать

Ответы289004

5 авг 2016, 02:52 484 289004

>>288994
Бладж:
https://github.com/mattdesl/lwjgl-basics/wiki/2D-Pixel-Perfect-Shadows
http://www.gmlscripts.com/forums/viewtopic.php?id=1657

Ответы289005

1,6 Мб, 500x288
5 авг 2016, 02:54 485 289005

>>289004
премного благодарен

Ответы289154

25 Кб, 415x155
5 авг 2016, 15:10 486 289154

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

5 авг 2016, 15:12 487 289156

>>288897
Матричные фильтры читай - самый простейший алгоритм

Ответы289163

641 Кб, 500x291
5 авг 2016, 15:21 488 289163

>>289156
окей, спасибо за наводку

GlowStick !dWRwJsmqCE 8 авг 2016, 19:30 489 290573

51 Кб, 816x63974 Кб, 1012x6097 Кб, 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 не у всех работают? На легаси нужно переписывать?

Помогите.

Ответы290584290626

8 авг 2016, 20:12 490 290584

>>290573
Начни с проверки того, что у тебя окно с правильной глубиной цвета создаётся. OpenGL'у же пофиг, он будет пытаться хоть что-то отобразить в любом случае.

Ответы290765

8 авг 2016, 23:03 491 290626

>>290573
Сам код шейдеров давай да и зачем юзать? 120?
Бери хотя бы 330

Ответы290765

8 авг 2016, 23:29 492 290630

Алсо, ананасы.
Когда делать перекат?
Как достигнем 500 постов или подождать пока Абу восстановит бамплимит?

Ответы290637

9 авг 2016, 00:17 493 290637

>>290630
Подожди пока начнет тонуть, очевидно же.

GlowStick !dWRwJsmqCE 9 авг 2016, 13:16 494 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);

Добавил вот эти строчки - треугольники всё равно белые.

Ответы290771

9 авг 2016, 13:19 495 290771

>>290765
> Если 120 не работают
Ну это же совсем древние видеокарты десятилетней давности.

Ответы290777

9 авг 2016, 13:23 496 290777

>>290771
Мне не трудно написать 2 шейдера под 120, если это только расширит аудиторию.

GlowStick !dWRwJsmqCE 9 авг 2016, 13:43 497 290787

Проблема решена. Мой драйвер устанавливал неустановленные юниформы в ноль, а драйверы у других людей входили в UB. Теперь всё работает.

Ответы290788

9 авг 2016, 13:45 498 290788

>>290787
А зачем каждый раз вычислять адрес юниформа в шейдере?
Почему один раз не делать и хранить где-то хендл на это?

Ответы290790

GlowStick !dWRwJsmqCE 9 авг 2016, 13:53 499 290790

>>290788
Это игра на twg, тут очень много мест, которые можно было бы оптимизировать. Например, добавить кеш для шейдеров, чтобы не загружать один и тот же шейдер несколько раз. В серьёзном проекте я бы это реализовал, но тут не вижу особого смысла.

Ответы290793

9 авг 2016, 14:00 500 290793

>>290790
> Например, добавить кеш для шейдеров, чтобы не загружать один и тот же шейдер несколько раз
В смысле?
Не биндить его дважды?

Ответы290795

GlowStick !dWRwJsmqCE 9 авг 2016, 14:03 501 290795

>>290793
Для каждого треугольинка создаётся свой шейдер.

Ответы290796

20 Кб, 510x546
9 авг 2016, 14:04 502 290796

>>290795
Штоу?

Ответы290800

GlowStick !dWRwJsmqCE 9 авг 2016, 14:14 503 290800

>>290796
У каждого объекта dream::engine::entity есть свой dream::gl::vertex_buffer_object, у которого есть dream::gl::shader. Все треугольники - энтити.

Ответы290801290802

GlowStick !dWRwJsmqCE 9 авг 2016, 14:14 504 290801

>>290800
> vertex_array_object
Фастфикс.

Я осознаю, что это неправильно и нуждается в оптимизации.

Ответы290802

4 Кб, 432x128
9 авг 2016, 14:19 505 290802

>>290800
>>290801
> Я осознаю, что это неправильно и нуждается в оптимизации.
Это не просто не правильно.
Это ужасно.

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

Ответы290803

GlowStick !dWRwJsmqCE 9 авг 2016, 14:21 506 290803

>>290802
> Перед отрисовкой отсекай те треугольники, который за экраном.
У меня таких нет.

Да и оптимизировать я смогу. Но когда нужно торопиться - немного не до этого.

10 авг 2016, 15:48 507 291376

Что будет, если использовать гейзерную программу и установить в ней значение одной из юниформ, использовать другую шейдерную программу, а потом опять установить первую программу?
Сохранится ли значение юниформы?

Ответы291377291629

10 авг 2016, 15:50 508 291377

>>291376
Должны.
У меня так текстуры работают.

11 авг 2016, 08:18 509 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 авг 2016, 15:11 510 293666

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

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

Фрагментный шейдер
http://pastebin.com/KC6Jcci5

Ответы293677

14 авг 2016, 15:26 511 293677

>>293666
в uniform пердавай не GL_TEXTURE0 и т.д., а просто 0, 1 и т.д.
glUniform1i(location, 0); - биндит текстуру 0

Ответы293679

14 авг 2016, 15:43 512 293679

>>293677
Благодарствую

Ответы295184

Аноним 19 авг 2016, 04:01 513 295184

>>293679
а если MRT, то еще glActiveTexture(GL_TEXTURE<номер);

19 авг 2016, 07:10 514 295196

Имеется ogl ver < 2, черно-белая текстура и цвета.
Нужно рендерить так, чтобы темные участки текстуры смешивались с цветом больше, чем светлые.

Ответы295199

19 авг 2016, 07:35 515 295199

>>295196
Короч, нужно что-то типа Resultcolor = (1 - Texturecolor) x Drawcolor
Все осложняется тем, что дело происходит на lwjgl.

Ответы295200295251

19 авг 2016, 07:37 516 295200

>>295199
Хотя не, тогда светлые места темными станут.

19 авг 2016, 16:30 517 295251

>>295199
ogl < 2 это типо без шейдеров?
Проблема же очевидно банальным шейдером решается

Ответы295257

19 авг 2016, 17:59 518 295257

>>295251
Шейдеры как раз появились в gl2

Ответы295336

65 Кб, 768x384
19 авг 2016, 19:47 519 295273

Сталкивался кто с проблемой отрисовки нескольких сотен двигающихся спрайтов с анимациями(мобы типа)? Я вот погуглил, говорят нужно через один динамический VBO рендерить за один glDrawElements. Пока думаю сделать два буфера: геометрии и текстурных координат, их перестраивать через glBufferSubData. Может есть какой оптимальный путь?
Алсо треугольники или квады? Говорят лучше треугольники, типа карты под них заточены.
очевидный ньюфаг

Ответы295387

20 авг 2016, 11:03 520 295336

>>295257
Были в 1.1 в виде расширений же.

20 авг 2016, 17:13 521 295387

>>295273
1) Делаешь один спрайтшит на всех и аплоадишь его в одну текстуру.
2) Каждый объект представляется координатами на экране и индексом спрайта. Фигаришь их в буфер с параметром GL_DYNAMIC_DRAW.
3) В геометрическом шейдере генеришь квады и готовые текстурные координаты, простые как амеба вершинный и фрагментный шейдеры кушают и высирают на экран. И все это за один drawcall.
4) ...
5) ПРОФИТ!!!!!

Пояснение: квады начиная с OpenGL 3.1 выпилены нахуй, делай TRIANGLE_STRIPE или TRIANGLE_FAN, про квады забудь.

1 Кб, 180x80
20 авг 2016, 19:22 522 295418

Аноны, поясните мне, пожалуйста.
Вот есть OpenGL ES 2.0, там, как и положено, пишется версия шейдера
#version 120 и т.п.
А вот и пришел GL ES 3.0, а там уже блять другое
#version 300 es
Они что, опидорели там в своем комитете?!

Ответы295421295481

20 авг 2016, 19:54 523 295421

>>295418
Неосилятор не нужен, иди в юнити-тред или уеч-тред.
120 == гавно мамонта

Ответы295476

21 авг 2016, 07:22 524 295476

>>295421
Почему они не сделали всем суффикс es, а у 2.0 оставили индексы первый шейдеров?

21 авг 2016, 09:20 525 295481

>>295418
Потому, что начиная с GL ES 3.0 используются специальные версии GLSL. Почему? Потому, что разные платформы.

21 авг 2016, 20:23 526 295696

>>195365 (OP)

Ответы295906

22 авг 2016, 13:48 527 295906

>>295696
Думаешь пора перекатываться?

9 Кб, 320x240
22 авг 2016, 16:50 528 295939

Ананасы, раздумывал тут на тему приемлемого освещения (для мобилок, естественно), хотелось бы получить что-то похожее на террарию, но там, как мне кажется, используется многопроходовый матричный фильтр с проверкой текущей ячейки на прозрачность для света (для прозрачных нулевой коэффициент затухания, для непрозрачных - другой), в общем, получается-то в целом довольно неплохо при 8+ проходах и при этом работа не зависит от количества источников света (натыкал точек и готово), напихал следующее:
http://pastebin.com/d0FUUfQ7
Получается что-то вроде пикрелейтеда, но проблема, в общем-то понятна - матричный фильтр и большие затраты, у меня это будет выдавать нормальный FPS даже при максимальном разрешении текстур, однако на мобиле железо сосущее, как известно, и будут некоторые веселости с залипаниями и торможениями.

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

Еще, как вариант, мне кажется, можно попробовать тепловые карты и этот вариант я тоже пробовал, но регулировать яркость освещения я пока не допер как. Ну и, естественно, чтобы свет появлялся вовремя нужно рендерить за пределами области видимости причем неплохо так, зато ресурсов почти не отжирает (почти тот же матричный фильтр, только за один проход).
Может подскажете еще варианты какие? Хотел бы, конечно, тепловые карты задействовать, но не допер, как считать передачу света (если его заменить теплом), то есть с какими поэффициентами и как уничтожение света, чтобы не залило всю карту.

Ответы296202296790

5,9 Мб, 1920x1080
23 авг 2016, 16:51 529 296202

>>295939
Короче, подумтил тут шейдер для flood-fill'a, как в террарии используется, похоже (но там он программный был, насколько мне помнится), получается гораздо приятнее, чем на основе передачи тепла, только побочный продукт - ромбик очень уж не нравится

25 авг 2016, 22:23 530 296790

>>295939
> (для мобилок, естественно)
Ну раз мобилки, то может не стоит городить что-то уж слишком сложное?
Может для начала попробовать простые техники?

Ответы297006

26 авг 2016, 19:34 531 297006

>>296790
Сначала тоже так подумал, а потом решил разные способы попытать в поисках самого привлекательного, все равно сроков не ставил, у меня это как своеобразная развлекуха получается, не просто же целый день сидеть без дела

31 авг 2016, 09:57 532 297763

Нужно написать простенький редактор уровней для своего игрового движка на OpenGL + Physx. Для него нужен ГУИ фреймфорк. Подумав, взял wxWidgets. Мотивация - не такой тяжелый, как QT, не требует шаманства со вспециальными аддонами для студии, сразу есть компонент для отображения OpenGL контента.

Все правильно сделал?

31 авг 2016, 16:21 533 297811

Пизданутый мобильный геймдев, меня он просто колотит блять. Под GLES 2.0 нет функции texture, а вместо нее старая-престарая texture2D, которую, сука, в 3.0 заменили на универсальную texture, а старую просто выкинули нахуй. У меня от них DIRECTX!

Ответы297816

31 авг 2016, 16:49 534 297816

>>297811
Жри говно молча

Ответы297822

39 Кб, 604x587
31 авг 2016, 17:10 535 297822

>>297816
слушаюсь

12 Кб, 325x386
Supreme !!NXKHuroIdQ 31 авг 2016, 22:35 536 297856

Поясните за такую штуку: у некоторых этот код рисует круги(как и нужно), а у некоторых рисуются квадраты. Причём, у меня в одном приложении этот код рисует круги, а в другом - квадраты. А у других рисуются квадраты и в том приложении, в котором у меня рисуются круги.
Использую LWJGL

Ответы297862297864

31 авг 2016, 22:41 537 297862

>>297856
В гугле забанили? http://stackoverflow.com/questions/1513811/getting-smooth-big-points-in-opengl
Трипкод и имя убери

Ответы297866

31 авг 2016, 22:44 538 297864

>>297856
Вангую поинтсайз(который кстати КВАДРАТ) много больше радиуса выводимой окружности. Получается маленькая окружность выведеная вершинами с очень большими квадратами, которые толпятся все в точке +-2 пикселя.
Почему везде по разному - хз.

Ответы297866

31 авг 2016, 22:49 539 297866

>>297864
Поинтсайз динамичный и в любом случае у некоторых точки квадратные
>>297862
Спасибо

1 сен 2016, 18:43 540 298130

Короче, ананасы, вопрос такой.
Допустим у меня есть точка, я нормирую ее координаты (от -1 до 1) в пределах некоторого вида, для этого вида у меня есть совершенно конкретные значения ширины и высота области видимости в пикселах. Так вот, допустим, ширина области будет 200, а позиция х точки 0.01375, это получается ее координата (в пикселах) теперь окажется равной 101.375, что нецелое число, естественно, так вот, каким образом OpenGL определит ее позицию на экране, он вернет 101 или 102, то есть мне важно не само число, а способ его получения.

Ответы298131

1 сен 2016, 19:12 541 298131

>>298130
OpenGL вычисляет позиции пикселей по их центру. То есть он определит позицию как пиксел, центр которого ближе всего к 101.375, что есть 101.5

Ответы298134298217

1 сен 2016, 19:28 542 298134

>>298131
Opengl ничего не вычисляет. Это как хтмл просто спецификация, а каждый браузер сам определяет как рисовать

Ответы298160298172

1 сен 2016, 21:05 543 298160

>>298134
Вот спецификация и говорит, как вычислять.

1 сен 2016, 22:18 544 298172

>>298134
Не похуй ли? Всё равно все существующие реализации принимают за позицию пикселя его центр.

2 сен 2016, 03:31 545 298217

>>298131
Спасибо

2 сен 2016, 04:34 546 298221

Если я работаю в полноценном движке готовом (типа UE4), мне нужно шарить ОупенДжиЭл?

МимоБогГеймДизайна

Ответы298222

2 сен 2016, 04:39 547 298222

>>298221
дай человеку движок и он сделает игру
научи человека писать движок и он сделает нихуя

3 сен 2016, 17:20 548 298411

>>195365 (OP)

20 Кб, 140x140
6 сен 2016, 09:15 549 298833

>glDrawElementsInstancedBaseVertexBaseInstance

9 сен 2016, 22:13 550 299409

Серьёзное дерьмо.
http://www.adriancourreges.com/blog/2016/09/09/doom-2016-graphics-study/

Ответы299643300038300072

12 сен 2016, 10:11 551 299643

>>299409
Причем тут OpenGL?

Ответы299673

12 сен 2016, 12:45 552 299673

>>299643
При том, что новый Дум на ОпенГЛ.
Да и вообще интересно же.

Ответы299678

12 сен 2016, 13:21 553 299678

>>299673
На ДХ.

Ответы299685

12 сен 2016, 13:43 554 299685

98 Кб, 1280x720147 Кб, 1280x720

>>299678
Выбор из Вулкана и ГЛ.

Ответы299694

12 сен 2016, 14:00 555 299694

>>299685
Какая разница, если в статье ни строчки кода.

Ответы299697299742

52 Кб, 650x650
12 сен 2016, 14:11 556 299697

>>299694

12 сен 2016, 16:42 557 299742

>>299694
Хабрахабр, плес

Ответы300072

13 сен 2016, 17:50 558 300033

Пропускать varying через геометри шейдер обязательно? Или можно как-то пробросить из вертекс сразу в фрагмент чтобы не писать все эти лишние ин/аут?

Ответы300035

13 сен 2016, 18:08 559 300035

>>300033
Ну если геометрический шейдер участвует, то да надо.

Ответы300042

13 сен 2016, 19:05 560 300038

>>299409
Как-то про ДесуСекс у этого чела поподробнее расписано, и про ГТА в принципе тоже. Видимо поторопился он малость.

А есть еще подобные разборки кадров?

13 сен 2016, 19:26 561 300042

>>300035
Ок, а есть способ сохранить имена переменных? Ну чтобы можно было линковать уже скомпилированные шейдеры для вариантов с геометри или без.

Ответы300055

13 сен 2016, 21:52 562 300055

>>300042
В новых версиях ГЛа можно хранить уже слинкованные шейдеры в бинарном виде.
http://docs.gl/gl4/glShaderBinary

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

> Ок, а есть способ сохранить имена переменных?
Можешь также ещё попробовать юзать uniform buffer object
Или заранее задавать индекс переменной прямо в тексте шейдера.

Ответы300064

13 сен 2016, 22:59 563 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_;

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

Ответы300071

13 сен 2016, 23:43 564 300071

>>300064
Попробуй
https://www.opengl.org/wiki/Interface_Block_(GLSL)#Input_and_output
http://www.geeks3d.com/20111117/simple-introduction-to-geometry-shader-in-glsl-part-2/

Ответы300284

13 сен 2016, 23:46 565 300072

>>299742
>>299409
А вот и перевод
https://habrahabr.ru/post/309844/

46 Кб, 960x540
14 сен 2016, 20:13 566 300284

>>300071
Сделал связывание через layout (location).

Блять, решил выебнутся - сделать вытягивание шэдоу волюма в геометри шейдере, оказалось GL_EXT_gpu_shader4 (нижняя граница совместимости для которой я пишу) не поддерживает GS инстансинг (invocations). За один проход стрипами не вытянишь силуэтные грани. Сука.

Ответы300301300309300475

14 сен 2016, 21:20 567 300301

>>300284
Спизди из третьего дума, который идет даже на днищекартах.

Ответы300305

14 сен 2016, 21:54 568 300305

>>300301
Там это через стенсил работает.

Ответы300309

14 сен 2016, 22:13 569 300309

>>300305
Это везде через стенсил работает. Фишка в том чтобы генерить сам волюм на гпу. >>300284 кун

438 Кб, 651x499
15 сен 2016, 23:11 570 300475

>>300284
Я спиздел. Всё делается за 1 проход. Замутил Carmack's Reverse на z-fail. Пришлось правда перенести все мешы на TRIANGLES_ADJACENCY.

Ответы300476

15 сен 2016, 23:13 571 300476

>>300475
А теперь покажи тень от самолета на светло-сером однотонном shadow receiver.

Ответы300949

105 Кб, 636x286
17 сен 2016, 10:55 572 300775

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

Ответы300864

17 сен 2016, 22:38 573 300864

>>300775
Тебе, по идее, нужно тагент посчитать и его тоже на ГПУ загрузить (как и вершины и текстурные координаты, например)
И вот таким шейдером рисовать
http://pastebin.com/ZJUcY5YA

https://web.archive.org/web/20080512083730/http://www.terathon.com/code/tangent.php

18 сен 2016, 16:22 574 300949

150 Кб, 640x480160 Кб, 640x480

>>300476
Моделька не замкнутая, поэтому иногда течет. Думаю все же на шедоумапах остановиться. Вот для примера PCF4x4 на 2 скрине. Еще немного поэксперементирую со всякими variance.

Ответы300964300965

18 сен 2016, 18:27 575 300964

>>300949
А если какой-нибудь FSAA наложить, может норм будет?

18 сен 2016, 18:52 576 300965

>>300949
Сам сейчас курю тему с тенями, нашел один интересный документик про теневые карты: http://cg.ivd.kit.edu/publications/2015/sssm/StochasticSoftShadows.pdf
Если коротко: обещают за хорошее время рендерить тени достоверного вида.

22 сен 2016, 16:11 577 301725

Аноны, где можно найти пример хелло ворлда с использованием OpenGL4 и SDL2 на сишке? Везде кресты.

Ответы301727

22 сен 2016, 16:28 578 301727

>>301725
http://pastebin.com/rWcQg0QQ

Ответы301728301730301778301797301821

22 сен 2016, 16:32 579 301728

>>301727
Добра тебе няша, буду разбираться. Хотя как-то жирно для хелло ворда, я ожидал строк 50. Надеюсь ты меня не обманул.

22 сен 2016, 16:56 580 301730

>>301727
GLCheckError() наркоман писал?

Ответы301731

22 сен 2016, 16:58 581 301731

>>301730
Я его из Дума 3 взял.

Ответы301737

22 сен 2016, 17:29 582 301737

26 Кб, 625x8075 Кб, 851x313

>>301731
Точно из третьего Дума?

Ответы301741

22 сен 2016, 17:40 583 301741

>>301737
https://github.com/id-Software/DOOM-3-BFG/blob/master/neo/renderer/RenderSystem_init.cpp#L869

Ответы301744

22 сен 2016, 17:57 584 301744

>>301741
Kek. У меня значит не-БФГ, там оно GL_CheckErrors( void ).
И проверяет не 15, а 10 ошибок. Вообще пушка. Кармак, как ты мог такую хуйню написать?!

Ответы301745301746

22 сен 2016, 17:59 585 301745

>>301744
Охуел? Кармак - бог.

22 сен 2016, 18:04 586 301746

>>301744
Можешь глянуть что теперь он пишет.
https://github.com/SoylentGraham/VRLib/blob/master/jni/GlUtils.cpp#L543

Алсо, кстати интересный момент.
Вот в индустрии есть крутые чуваки которые делают годные вещи и вообще они люди опытные, много чего написали и попробовали.
Интересно читать их статьи и какие-то наблюдения, но не всегда можно посмотреть их код.
Ну как-то вдохновиться им, какие-то интересные моменты найти для себя: "Блин круто! Я даже не думал, что так можно написать" и тд и тп.

Ответы301755

22 сен 2016, 18:53 587 301755

>>301746
>github
Вот так я как раз и думал переписать эту функцию - while, пока все ошибки не собраны. Видимо прошлую версию все же не он писал.

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

Правда мне больше хотелось бы видеть статьи с разборкой рендера как в блоге http://www.adriancourreges.com/ - там разобраны Doom 2016, Deus Ex HR, GTA 5 и Supreme Commander.

Ответы301758301759301760

22 сен 2016, 19:06 588 301758

>>301755
Скачиваешь renderdoc и разбираешь. Совсем дурак чтоли.

22 сен 2016, 19:06 589 301759

>>301755
> Видимо прошлую версию все же не он писал.
Прошлая версия писалась лет 17 назад. Она просто перекочевала в Дум.
https://github.com/id-Software/Quake-III-Arena/blob/master/code/renderer/tr_init.c#L241

22 сен 2016, 19:08 590 301760

>>301755
Алсо, можешь поглять этот реддид
https://www.reddit.com/r/GraphicsProgramming/

Ответы301763

22 сен 2016, 19:18 591 301763

>>301760
Большое спасибо, анон!

22 сен 2016, 20:40 592 301778

20 Кб, 379x35618 Кб, 526x2678 Кб, 515x112

>>301727
Всё это обязательно указывать? В других примерах такого не вижу.

Ответы301780

22 сен 2016, 20:48 593 301780

>>301778
Ну вообще вроде как в документации написано, что атрибуты инициализируются какими-то базовыми значениями.
Я написал просто чтоб было.
Может закомментировать и глянуть как будет работать.

22 сен 2016, 22:19 594 301797

>>301727
И да,
> #include <GL/glew.h>
Везде вижу использование всяких glew/glu/etc. Зачем? Это же надстройки над opengl. Почему нельзя писать на чистом opengl? Поясни пожалуйста за это.

Ответы301798

22 сен 2016, 22:22 595 301798

>>301797
> Почему нельзя писать на чистом opengl? Поясни пожалуйста за это.
Тебе придётся вручную получать адреса функций опенгла, писать константы какие-то и тд.
Ну а библиотека glew всё делает сразу за тебя.

22 сен 2016, 23:50 596 301806

Так ананасы. По поводу шапки.
Нашёл хороший сборник ссылок про то, что касается опенгла сразу на одной странице.
https://github.com/eug/awesome-opengl
Это нам позволит сократить шапку раза в полтора.

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

23 сен 2016, 02:23 597 301821

>>301727
Весь день тупил в эту пасту, opengl сложный, не могу понять принципа рисования. Вот есть у меня SDL-окно, opengl и glew тоже инициализировал, как мне нарисовать квадрат 40x40 пикселей? Как с пикселями вообще работать? Аноны, спасайте, голова пиздец болит, сложно-сложно-сложно.

Ответы301822301842301849

23 сен 2016, 02:55 598 301822

>>301821
http://learnopengl.com/

23 сен 2016, 09:30 599 301842

>>301821
Зачем тебе работать с пикселями? OpenGL работает с треугольниками. Переключай голову.

Ответы301850

23 сен 2016, 10:44 600 301849

>>301821
Купи новую голову, поумнее, для начала.

Ответы301850

23 сен 2016, 11:00 601 301850

>>301842
А OpenGL разве нельзя сказать, чтобы он с пикселями работал? Слышал, что можно. Нагуглить не могу. У меня 2D.

>>301849
Это сложно.

Ответы301851

23 сен 2016, 11:06 602 301851

>>301850
Да можно, работай с пикселями, нах - https://www.opengl.org/sdk/docs/man2/xhtml/glDrawPixels.xml
Потом ты скажешь, что OpenGL тормозной, что уеч быстрее спрайты рисует и ты уйдешь из этого треда так и не узнав, что спрайты сейчас рисуют при помощи текстурированных треугольников.

Ответы301855

23 сен 2016, 11:21 603 301855

>>301851
Это не то. В том примере, про который я слышал меняли opengl'овский 0.000 и 1.000 на обычные пиксели, в итоге можно было юзать всё как раньше, но размеры указывать в пикселях. Там что-то с glMatrixЧётотам было. Я хочу рисовать текстурированные треугольники в пикселях!

Ответы301858

23 сен 2016, 11:36 604 301858

>>301855
Делай матрицу масштабирования с размерами клиентской области, будет тебе натягивание совы на глобус^H^H^H^H^H^H^H^H^H^H^H^H^H^H нормальных координат на оконные.

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

Ответы301859

23 сен 2016, 11:41 605 301859

>>301858
> Делай матрицу масштабирования с размерами клиентской области
Блядь, а можно конкретней? Яж не разберусь.

> прекрати ебать себе могзги
У меня просто 2D игра, зачем мне что-то помимо пикселей?

Ответы301863

23 сен 2016, 12:01 606 301863

>>301859
Блин. Ты треугольник хотя бы нарисовал уже? А то я не знаю, на каком языке с тобой вообще говорить.

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

Сри через GDI пикселями своими, раз не хочешь про то как в OpenGL слушать.
https://msdn.microsoft.com/en-us/library/windows/desktop/dd145078(v=vs.85).aspx

Ответы301866

23 сен 2016, 12:08 607 301866

>>301863
> Ты треугольник хотя бы нарисовал уже?
Нет, там двумерный массив, а это страшно, сложно, я решил отложить и изучить теорию.

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

> microsoft.com

И всё же, поясни за матрицу. Неужели я на столько сильно туплю?

Ответы301867301868

23 сен 2016, 12:11 608 301867

>>301866
Я даже не знаю, проигрывать с тебя или плакать.

Пожалуйста, начни вот отсюда (забудь про игру пока): https://code.google.com/archive/p/gl33lessons/

Ответы301869301873301888

23 сен 2016, 12:18 609 301868

>>301866
> забудь про игру пока
Это я умею.

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

И да, у меня ещё один вопрос на счёт OpenGL, мне всю свою жизнь придётся ебать числа с плавающей точкой? Все эти флоаты, даблы, к чему? С интами нельзя будет работать? Оно же и производительность режет, и просто неприятно.

Ответы301869301886301901

23 сен 2016, 12:18 610 301869

Промазал, >>301868 это сюда >>301867 .

23 сен 2016, 12:41 611 301873

>>301867
Не кормите его, это тролль.

23 сен 2016, 13:29 612 301886

>>301868
Ух, ты на чем сидишь в 2016 году, на 486SX50MHz с 4Mb RAM, S3 Virge 2Mb, HDD 100Mb??

Ответы301888

23 сен 2016, 13:50 613 301888

1 Кб, 141x2422 Кб, 541x202

>>301867
>Пожалуйста, начни вот отсюда (забудь про игру пока): https://code.google.com/archive/p/gl33lessons/
Виндоблядство какое-то, да и объясняет плохо. В общем я решил твою пасту переписывать. Дошел до шейдеров и охуел, сложно, но хотя бы понятно что происходит.
Пикрелейтед, сигфолт, почему? Debug1 ещё выводится, debug2 и debug3 — нет. Уже пол часа пытаюсь найти причину.

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

Не понял к чему ты это написал, поясни.

Ответы301889

23 сен 2016, 13:57 614 301889

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

Ответы301890

23 сен 2016, 14:03 615 301890

>>301889
> поскольку файл с текстом шейдера не лежит там где его пытается открыть программа
Стоп, какой файл?

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

> Кармак с float работает, значит норм.
У Кармака задачи другие.

Ответы301891

23 сен 2016, 14:06 616 301891

>>301890
Читай глазками, а не ректальным очком анальной жопы:
> После того как исходный код шейдеров написан их можно загрузить из программы и создать из них шейдерную программу. Исходный код шейдера это обычный текст, загрузить его можно как обычный текстовой файл, в исходника к статье для этого используется функция LoadFile, которая открывает файл, узнает его размер, выделяет под данные файла память и читает весь файл в память, после чего эти данные можно использовать.

Ответы301892301895

23 сен 2016, 14:09 617 301892

>>301891
Да хватит уже кормить его!

Ответы301893301895

23 сен 2016, 14:11 618 301893

>>301892
Я сегодня добрый относительно.

23 сен 2016, 14:18 619 301895

>>301891
Я ту статью вообще дропнул. Сейчас перечитал, стало понятнее, чувствую прилив знаний. Однако я по прежнему не понимаю где мне взять шейдеры не злись, Анончик, я туповат. Вот эта паста http://pastebin.com/raw/rWcQg0QQ генерит сраный шейдер или нет? Я же её переписываю.

>>301892
Но я же не разберусь!

Ответы301897301898

23 сен 2016, 14:20 620 301897

>>301895
Ты для начала ответь на самый простой вопрос - нахуя тебе вообще OpenGL?

Ответы301910

23 сен 2016, 14:22 621 301898

>>301895
Шейдеры есть в тексте статьи и в архиве, прикрепленном к ней.

Ответы301910

23 сен 2016, 14:35 622 301901

>>301868
>Все эти флоаты, даблы, к чему? С интами нельзя будет работать? Оно же и производительность режет
Шёл 2016й год, а дауны всё ещё не знали, что операции с плавающей точкой стали быстрее целочисленных операций ещё два поколения назад(а уже в первых пентиумах их производительность сравнялась).

81 Кб, 543x831
23 сен 2016, 15:13 623 301910

>>301897
Скорость.

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

Функция "build_shader" полностью скопипизжена из аналогичного примера на пастбине.

Ответы301914301923

23 сен 2016, 15:19 624 301914

>>301910
>Скорость.
Т.е. тех >9000 fps, которые тебе для твоих задач будет выдавать практически любой готовый 2D движок, тебе недостаточно?

23 сен 2016, 18:12 625 301923

>>301910
Посоны, ну как фон-то сделать.

Ответы301925

23 сен 2016, 18:29 626 301925

>>301923
> как залить фон белым цветом
glClearColor + glClear например.

Болезный, ты сейчас спрашиваешь как написать сочинение про курочку Рябу (про "Мертвые души" или "Войну и мир" уже не обсуждаем, это недостижимая планка большинства местных кириллов), когда сам еще не заполнил палочками прописи за первую четверть первого класса, и после этого обижаешься, что тебя тут не любят. Понял?

Ответы301930

2 Кб, 282x39
23 сен 2016, 18:37 627 301930

>>301925
Я пытался так сделать, ничего не работает, вот и спрашиваю что забыл.

> Понял?
Я всё понимаю, и мне за это стыдно, честно-честно, но я ведь сам не справлюсь. Вот я сейчас этот хелловорд добью и больше тут по таким глупостям какать не буду, только с хелловордом помогите.

Ответы301931

23 сен 2016, 18:38 628 301931

>>301930
1) Заливаешь черным цветом.
2) А буфера флипнул?

Ответы301932

23 сен 2016, 18:44 629 301932

>>301931
Объясни как конкретно "флипнуть" буфер. glFlush() не оно?

Ответы301937

23 сен 2016, 18:55 630 301937

>>301932
Не угадал, SwapBuffers (если что, входит в API оконной системы, или того SDK, который юзается поверх окон).

Ответы301939

23 сен 2016, 19:04 631 301939

>>301937
О, круть, работает! Только в SDL это делается с помощью функции SDL_GL_SwapWindow(window), ели нашел.

съебал

380 Кб, webm,
640x480
24 сен 2016, 18:52 632 302062

Двач, помоги. Как исправить исчезание тайлов (вембрелейтед)? Это как-то связано с камерой, но так как я полное дно и учу 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);"
"}"
;

Ответы302068

24 сен 2016, 19:18 633 302068

>>302062
Забейте, я просто еблан, который считает координаты беззнаковыми переменными.

6 окт 2016, 15:32 634 303101

>>302965
Почему ты решил, что он умер?

7 окт 2016, 13:29 635 303203

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

Ответы303233

7 окт 2016, 17:41 636 303233

>>303203
glOrtho?

Ответы303244

7 окт 2016, 18:32 637 303244

>>303233
Нет, нашёл всё-таки. Надо всего-то было передавать текстурные координаты с типом noperspective.
Шейдер, имитирующий говнографику PS1, почти готов!

Ответы303252

7 окт 2016, 18:56 638 303252

>>303244
И где же он?

19 Кб, 774x139
26 окт 2016, 21:21 639 306175

Поясните за буфер глубины.
В общем решил постигать Constructive solid geometry через буферы stencil и depth, но не могу понять, почему моя сфера исчезает, когда я задаю glDepthFunc(GL_GREATER). Т.е. я ожидаю, что буду видеть задние стенки сферы, а вижу ровно нихуя.
Боюсь, что где-то фундаментально неправ. алсо GL ES2.

Чем изначально инициализирован буфер глубины? Или невидимые стенки каким-то хером не рендерятся вообще? Вырубание кулфейсов не помогает что-то увидеть

Ответы306190

sage 26 окт 2016, 22:33 640 306190

>>306175
>Или невидимые стенки каким-то хером не рендерятся вообще?
Куллинг по нормалям. Отключи его.

Ответы306368

392 Кб, 806x626
27 окт 2016, 20:30 641 306339

Рендерю тут кубы через GS(знаю, что он для этого не предназначен).
А ничо так, миллион кубов на экране без просадок на офисной интегрированной видеокарте. Можно свой майнкрафт(который на этой машине даже не запускается) пилить, лол.

27 окт 2016, 20:38 642 306342

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

27 окт 2016, 20:39 643 306344

>>246578
А что такое мировое пространство ты знаешь? А объектное?

27 окт 2016, 22:07 644 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.

459 Кб, 806x626
31 окт 2016, 14:29 645 306828

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

Ответы307394

3 ноя 2016, 16:03 646 307394

>>306828
красота!

5 ноя 2016, 00:23 647 307637

Какую либу для создания контекстного окна для рендеринга и инпут/аутпута стоит использовать вместе с OpenGL в 2016почти 2017 году? Использовал раньше GLUT но сейчас начинаю новый проект и думаю начать использовать что-нибудь по-новее, если есть.

Ответы307638

5 ноя 2016, 00:26 648 307638

>>307637
Ты оппост смотрел, еблан?

36 Кб, 421x604
5 ноя 2016, 01:53 649 307650

Есть какие-нибудь понятныи книжки/туториалы по PBR в реал-тайме? Я неплохо разбираюсь в обычном PBR рендеринге, во всяких GI алгоритмах, алгоритмах семплинга, брдф, хочу вот почитать про реалтайм рендеринг теперь.

Ответы307651307654

5 ноя 2016, 01:54 650 307651

>>307650
понятные*

5 ноя 2016, 02:14 651 307654

>>307650
https://interplayoflight.wordpress.com/2013/12/30/readings-on-physically-based-rendering/

> Я неплохо разбираюсь в обычном PBR рендеринге, во всяких GI алгоритмах, алгоритмах семплинга, брдф
А вот на счёт этого что можешь посоветовать почитать/посмотреть?
Ну чтобы понять о чём это и ориентироваться в теме.

5 ноя 2016, 16:26 652 307730

я к вам вкачусь пожалуй )))

5 ноя 2016, 16:30 653 307732

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

Ответы307753307882

5 ноя 2016, 17:39 654 307753

>>307732
Ищи готовый лучше.

Ответы307755

5 ноя 2016, 17:46 655 307755

>>307753
ну вот я подумал ок возьму от квейка, ток чот в гугл не осилил документацию как устроен мап файл что там ваще надо чтоб загрузить такую карту себе в прогу

5 ноя 2016, 22:40 656 307819

Тут все юзают Visual Studio? Никого не смущает, что там блядский MSVC вместо нормального компилятора? И в чём смысл юзать вообще OpenGL тогда, если всё это будет работать только под виндой?

Ответы307827307850

5 ноя 2016, 22:52 657 307827

>>307819
Отладил в студии, потом перекомпилил на чем надо, не?

Ответы307830

5 ноя 2016, 22:55 658 307830

>>307827
Мне почему-то кажется, что если проект большой и там присутствуют всякие точные расчёты, то если скомпилить потом на другом компиляторе, получится нерабочая хуйня. Как минимум будут проблемы со всякими там округлениями. Хотя если использовать только GL типы, то хуй знает.
У кого-нибудь есть опыт подобный?

Ответы307855

43 Кб, 600x400
6 ноя 2016, 00:32 659 307850

>>307819
>2016
>программировать под шиндовс
>в студии
Как же жалко спермохлёбов, которые качают многогигабайтную VS, чтобы скомпилировать несколько десятков строк кода. И к тому же, лишены таких полезных штук, как clang и valgrind. Я вот хз как еще под виндой профилировать эффективность использования процессорного кеша. Наверное только какие-нибудь платные профайлеры от интел.

Ответы307854307855

6 ноя 2016, 00:44 660 307854

>>307850
>профилировать эффективность использования процессорного кеша
Лолирую со школьника.

6 ноя 2016, 00:48 661 307855

>>307830
Детерминизм может иметь значение только в сетевом коде. В графике всем на это довольно сильно похуй, так как ты всё равно не сможешь наговнокодить погрешности достаточно крупные хотя бы для того, чтобы у тебя хоть один пиксель не совпал.
Короче, ты хуйнёй страдаешь.
>>307850
А вот и нитакоекакфсе красноглазое уёбище подползло. Которое студию видело последний раз, наверное, десять лет назад, и не знает, что нынче она обладает самым мощным и удобным дебаггером, до которого валгриндам срать и срать, и всё равно не просраться. И да, профилировать использование процессорного кэша она тоже умеет. И загрузку процессорных каналов показывает. И распределение инструкций по ядрам. И скомпилированный код вплоть до уровня машинных кодов. И ещё много чего, но ты же ведь всё равно не поверишь, а посмотреть и убедиться сам не можешь, потому что ставить окнеблядиксное говно принципиально не будешь(экспресс-версия которого весит 160мб, хуй знает где ты гигабайты нашёл)?

Ответы307859

6 ноя 2016, 00:54 662 307857

Я тут писал всё время на opengl3.3 и сейчас решил перекатиться на 4.0+. Видеокарта позволяет(посмотрел через GL View Extension или что-то такое + на сайте). В интернете пишут что-то про драйвера, но ведь opengl32.lib валяется в папке с компилятором. Кароче, я не понимаю. Что мне нужно сделать?

Ответы307858307863

6 ноя 2016, 00:56 663 307858

>>307857
не с компилятором, а в системной, в виндоус сдк кароче*
У меня уже глаза слипаются.

Ответы307863

6 ноя 2016, 01:01 664 307859

>>307855
Вот и пиздабол подъехал.
Во-первых, выпуски express устарели лет на 6 и уже давно не поддерживаются. Они более чем всраты, никакого вразумительного дебага ты там не найдешь, а компилятор даже с++11 поддерживает не полностью.
Во-вторых, дебаггер самый обычный, ничем не отличающийся от оного в любой опенсорсной среде типа codelite или qt creator.
В-третьих, попробуй поставить visual studio 2015 community, и охуеешь от размера, минималка (только цепепе, без шершавого и тулзов для мобилок/веба) выйдет в несколько Гб. Полный комплект исчисляется уже десятками гигабайт.

6 ноя 2016, 01:15 665 307863

>>307858
>>307857
Или там просто нужно выставить версию при создании контекста, а либа та же остаётся?

6 ноя 2016, 06:53 666 307882

>>307732
бампчую

Ответы307893

6 ноя 2016, 08:36 667 307893

>>307882
анон можешь посоветовать примеры структур файлов моделей, карт, шейдеров.

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

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

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

Ответы307905

6 ноя 2016, 11:08 668 307905

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

6 ноя 2016, 13:48 669 307933

>>307931
Толсто, петушара.

7 ноя 2016, 08:37 670 308140

лол

9 ноя 2016, 05:13 671 308630

Может кто-нибудь рассказать, зачем вообще нужны GL типы данных? Типа GLfloat, GLuint ну вы поняли.
В каких случаях их стоит использовать?
Например, скажем, я написал свой бичёвый аналог glm (вектора/матрицы/всякие трансформации). Что будет, если я перепишу с GLfloat вместо float?

Ответы308633308634

9 ноя 2016, 05:53 672 308633

>>308630
В С и С++ встроенные типы данных могут иметь разные размеры, в зависимости от версии компилятора или платформы. Использование псевдонимов позволяет повысить платформонезависимость.

Хотя сейчас это и не так актуально для ПК.

9 ноя 2016, 06:38 673 308634

>>308630
Не нужны, это костыль для устаревших платформ.

16 ноя 2016, 22:52 674 309920

Какой-то мудень начал переводить learnopengl туториал на хабре. Ожидаем прирост школьников и просто всяких залетных мразей.

Ответы309924

16 ноя 2016, 23:41 675 309924

>>309920
> Ожидаем прирост школьников и просто всяких залетных мразей.

От чего такой вывод?

135 Кб, 640x480
18 ноя 2016, 19:46 676 310291

То чувство, когда используешь йоба-шейдеры в пиксельной параше.

Ответы310326

18 ноя 2016, 21:20 677 310326

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

Ответы311139

21 ноя 2016, 19:12 678 310796

>>288377
еблан, блять, пиздуй на филфак.

180 Кб, 806x626
23 ноя 2016, 19:00 679 311139

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

Ответы311148311160311179311387

23 ноя 2016, 20:17 680 311148

>>311139
Что пилишь?

Ответы311211

23 ноя 2016, 21:28 681 311160

>>311139
Как ты атлас организовал?

Ответы311211

24 Кб, 450x333
23 ноя 2016, 23:38 682 311179

>>311139
насколько помню в ярости мегатекстуры всем кускам текстуры ещё в "атласе" (что и есть мега-текстура) обрезали не по рамке, а ещё толи 16 пикселей "за рамкой" оставляли чтобы артефактов не было

возможно это твой случай

Ответы311211

24 ноя 2016, 13:21 683 311211

>>311148
Шутан. Хотя кого я обманываю, движок я пилю.
>>311160
Как все организуют.
>>311179
Я знаю, что это артефакты оверсэмплинга, т.к. разрешения флоатов не хватает. По-видимому, придётся всё же добивать по краям линию.

Ответы311226

24 ноя 2016, 15:51 684 311226

>>311211
> Шутан. Хотя кого я обманываю, движок я пилю.
Прикольна. Я тоже время от времени делаю, лел.
Ищи в треде вебмки, они мои, лел.

208 Кб, 806x626
25 ноя 2016, 16:28 685 311387

>>311139
Охуеть, два дня с этой хуергой трахался, но подебил таки.
Итого выяснилось, что артефакты на стыках лезут не из-за протекания текстур, а из-за того, что на стыках неправильно определяются ЛОДы, и берётся мипмэп не того уровня, как остальная текстура.
Проблема известная, но только вот почти нихуя не описанная нигде. Лечится обычно хранением в атласе текстуры в четыре раза большего размера, но я вылечил просто отключением нахуй мипмэпов, так как всё равно вместо текстур у меня гигантские говнопиксели, выглядящие одинаково на любых имеющихся расстояниях.

Ответы311404313335

25 ноя 2016, 20:13 686 311404

>>311387
В отдалении эти пиксели будут выглядеть ещё хочу без мипмаппинга.

311 Кб, 806x626
28 ноя 2016, 21:19 687 311866

Генерируем траву через GS, первый уровень.

Ответы313061

1 дек 2016, 13:14 688 312300

>>195365 (OP)
Хотел задать вопрос, но пока писал - сам придумал ответ, проверил - работает, всем спасибо, идите нахуй.

Ответы312316

1 дек 2016, 14:03 689 312316

>>312300
Молодца, всё правильно сделал.

3 дек 2016, 11:13 690 312684

Я полный ноль в триде, второй день сижу, ебусь с матрицами. Вроде, понял, как работает камера, нашел функцию lookAt, которая автоматически берет некоторые параметры камеры и вычисляет позицию вершин с их учетом. Есть функция paintGL, которая выполняется каждый фрейм. Логично засунуть lookAt туда, но тогда у меня выходит, что результирующая матрица постоянно меняет свое значение при том, что камера все время находится на одном месте, и отрисовывается, будто кубик постепенно отдаляется. Как быть?

Ответы312687

3 дек 2016, 11:36 691 312687

>>312684
Все, разобрался. Надо просто на каждый фрейм создавать новую матрицу view.

3 дек 2016, 19:56 692 312770

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

Ответы312776312779

3 дек 2016, 21:56 693 312776

>>312770
>можно же сделать попроще
Юзай ДВИЖКИ

3 дек 2016, 22:30 694 312779

>>312770
Зачем ты берешься писать движок, если даже базовые вещи для тебя непонятны?

Ответы312781

3 дек 2016, 23:03 695 312781

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

Ответы312810

4 дек 2016, 02:53 696 312810

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

Ответы312839

4 дек 2016, 11:51 697 312839

>>312810
Речь о линейной алгебре и шла, болван. И да, все детали знать все равно невозможно. Никто и не мог подумать, что поворот можно описывать несколькими разными способами, ведь ни в википедии, ни в некоторых учебниках, приведенных в шапке об этом не было сказано ни слова.

Ответы312932

4 дек 2016, 18:38 698 312932

>>312839
Учитывая, что в первом же туториале из шапки это подробнейшим образом расписывается со всей математикой, то болван тут только ты. Иди уже возьми юнити, там всё за тебя сделано.

732 Кб, 806x626
5 дек 2016, 15:07 699 313043

Итого двухуровневая процедурная трава на GS, работает приемлемо на встроенной Intel видяхе.
Только после всех правок и отладок мне самому на геометри шейдер смотреть страшно теперь.

Ответы313053313061

5 дек 2016, 15:56 700 313053

>>313043
Выглядит отвратительно.

Ответы313067

5 дек 2016, 16:43 701 313061

>>311866
>>313043
Неплохо. Теперь добавь цветочков всяких, кустов и деревьев, чтобы естественнее выглядело. Что за игру пилишь?

Ответы313067

5 дек 2016, 16:58 702 313067

>>313053
Есть такое. Чтобы нормально выглядело, теперь надо нарисовать приличные спрайты травы(а не взять первый попавшийся из гугла), добавить освещение, анимацию и тени на переднем уровне. А то пока что свет считается банально по нормали земли.
>>313061
Ничего не пилю. Просто нарабатываю скиллы и изучаю возможности.

6 дек 2016, 20:51 703 313248

Скажите, как эффективнее всего (по роизводительности) показывать двухмерную картинку (массив цветовых значений) в клиентской области окна?
Можно ли напрямую попиксельно выводить в color buffer?

Ответы313252313257

6 дек 2016, 20:58 704 313252

>>313248
Статичную? Двумя треугольниками с текстурой.

Ответы313257313312

6 дек 2016, 21:33 705 313257

>>313248
Зачем заморачиваться на производительность при такой задаче, с отрисовкой одной двухмерной картинки даже самая древняя видеокарта справится на ура. Так что >>313252 - cамый простой способ.

Ответы313260

6 дек 2016, 21:45 706 313260

>>313257
Дело в том, что это и есть один из самых производительных способов.

7 дек 2016, 06:23 707 313312

>>313252
>Статичную?
Нет. Есть поток изображений от прибора (рентген-аппарт), нужно наложить на них некоторый цифровой фильт и показать результат в окне. Так как скорость потока заранее неизвестна, нужно позаботиться о производительности в самом нагруженном случае. Может есть достатчно быстрый способ выводить в идеопамять (без OpenGL), желательно с двойной буферизацией?
>Двумя треугольниками с текстурой
Не понимаю. Какие треугольники и текстура? У меня нет 3D моделей, у меня - 2D изображения.
Не бейте сильно - я раньше с графикой не работал.

Ответы313321

7 дек 2016, 11:05 708 313321

>>313312
Тебе нужно просто выводить прямоугольник с текстурой, как тут: http://www.learnopengl.com/#!Getting-started/Textures
3D это 2D с еще одним измерением.
Обрабатываешь свой результат, как тебе нужно, а потом просто делаешь из него текстуру и загружаешь.
Ты уверен, что тебе нужен OpenGL? Может тебе и какой-нибудь GDI+ подойдет?

Ответы314035

7 дек 2016, 13:36 709 313335

>>311387
Лечится текстурными массивами. Тоже когдато ебался с атласами и протеканием в мипах. Потом забил и перешел на Array Texture.

Ответы313359

7 дек 2016, 14:00 710 313338

>>195874
ВебГЛ - это отличная идея для демоверсий, например, чтобы не парить юзера качанием бинарника и установкой его на свой компьютер, а ты - ёбаный даун.

7 дек 2016, 17:29 711 313359

>>313335
Я на 3.3 делаю, там их ещё нет.

Ответы313378

7 дек 2016, 19:01 712 313378

>>313359
>https://www.opengl.org/wiki/Array_Texture
>Core since version3.0

Ответы313565

8 дек 2016, 13:27 713 313565

>>313378
Опа! То ли я слепой, то ли мне подсунули табличку с ошибкой, когда я их доступность смотрел.
Отлично, пошёл опробовать.

11 дек 2016, 09:00 714 314035

>>313321
>Ты уверен...?
Нет, не уверен.
>OpenGL или GDI+
А как у GDI+ со скоростью и двойной буферизацией?
И вот ещё вопрос к профессионалам. Как согласовать частоту кадров (и моменты производства кадров) с частотой работы видеосистемы? Может быть видеосистема может посылать какой-нибудь сигнал о том что нужно, чтобы приложение срочно выдало ей следующий кадр (не знаю как правильно сформулировать)?

Ответы314186

11 дек 2016, 23:33 715 314186

>>314035
google vsync

21 дек 2016, 18:58 716 315763

Гейманы, хелп.

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

Суть - нихуя не работает матрица перспективы. Перепробовал и считать ее в функции, и подставлять константную - хуй там плавал, черный прямоугольник.
Если заменить на единичную - разумеется все работает (это же все равно что ее и нет), но тогда нихуя нету перспективы - как камеру от объекта не удаляй, он сука всегда одного и того же размера.

Ответы317400

21 дек 2016, 21:37 717 315801

>>265718
Объяви свои брушбоксы глобально (за пределами функции) или сделай их статическими.

22 дек 2016, 08:05 718 315921

>>265718
У тебя на 9 и 10 строчки идёт объявление функций же.

28 дек 2016, 11:35 719 316880

Это нормально что фрагментный шейдер игнорируется напрочь? Вставил шейдер после кода с дисплейными списками старого ГЛ (glbegin-end), в итоге все рисуется цветом предыдущих объектов. Инициализирую правильно, по крайней мере отдельно рисует треугольники нужными цветами.

Ответы316922

sage 28 дек 2016, 19:02 720 316922

>>316880
gDEBugger в помощь.
Это должно быть в шапке.

Ответы316924

sage 28 дек 2016, 19:12 721 316924

>>316922
Он же мертв уже десятилетие?

Ответы316933

28 дек 2016, 20:50 722 316933

>>316924
Чего это? Пользуюсь сам, брат жив. Вещь просто незаменимая.

31 дек 2016, 13:02 723 317400

>>315763
у тебя усеченная пирамида начинается на расстоянии 1.0 от камеры, а объект находится на расстоянии 0.5.

76 Кб, 918x809
sage 3 янв 2017, 08:45 724 317676

Сап. У меня явные проблемы. Помогите советом плис.

Ответы317677317687317691

sage 3 янв 2017, 08:52 725 317677

>>317676
> cmake
Выкинь это дерьмо и больше никогда к нему не прикасайся. Особенно на винде.

Ответы317735

3 янв 2017, 12:28 726 317687

>>317676
>No CMAKE_C_COMPILER could be found.

Не благодари.

9 Кб, 200x200
3 янв 2017, 13:42 727 317691

>>317676
> sudo pacman -S glfw-x11

sage 3 янв 2017, 18:11 728 317735

>>317677
а как альтернативу, но годную, что использовать?(меня в гугле забанили, моск кипит немного)

Ответы317796317831

sage 4 янв 2017, 08:53 729 317796

>>317735
не слушай этого дебила, если разрабы сказали использовать cmake, значит используй cmake

Ответы317836317853

4 янв 2017, 14:23 730 317831

>>317735
SCons, WAF, как альтернативу, одного поля ягоды

4 янв 2017, 15:11 731 317836

>>317796
Я даже не знаю кому верить блять, ты хотя бы объяснил бы как Cmake юзать.

Ответы317854

sage 4 янв 2017, 17:15 732 317853

>>317796
> не слушай этого дебила
Программа, которая ищет (и не находит) компилятор в реестре и по захардкоженным путям, в то время, когда он настроен и есть в PATH, просто не заслуживает аргументированного обсуждения.

Ответы317857

sage 4 янв 2017, 17:17 733 317854

>>317836
>как Cmake юзать
в твоем конкретно случае
http://www.glfw.org/docs/latest/compile.html
а лучше не выебываться и скачать уже готовый билд
http://www.glfw.org/download.html

Ответы317855

4 янв 2017, 17:20 734 317855

>>317854
Я уже решил не ебаться с Cmake.

21 Кб, 601x574
sage 4 янв 2017, 17:25 735 317857

>>317853
>ищет (и не находит) компилятор
кому ты пиздишь?

608 Кб, 2696x1612
7 янв 2017, 01:04 736 318170

Здравствуйте, мои няшки!
Пишет вам полный GL ньюфаня. Вопросов есть у меня.
1. Я пытаюсь нарисовать плоскую картинку из квадратных спрайтов по типу как на пике. Для этого я прохожу в цикле по всем тайлам и каждый накладываю, как текстуру. В принципе получается нормально, но только тогда, когда размер текстуры в пикселах совпадает с размером области ее наложения. Когда я пытаюсь зумить изображение, оно превращается в тыкву, текстуры уродуются и становятся заметны швы между ними. По-видимому, как-то нужно это дело сглаживать. Как?
2. У меня есть условно неподвижный пользовательский интерфейс на переднем плане и некий 2д вид на заднем, который может двигаться и отдаляться. Сейчас я использую для всего одни фиксированные координаты по типу
GL.Ortho (0, w, h, 0, -1, 1);
GL.Viewport(0, 0, w, h);
Мне приходится заниматься неудобными пересчетами координат. Подозреваю, что есть более рациональный способ это организовать. Как?
3. Мне приходится рисовать линии и точки. Я освоился со стандартными методами вроде GL.Begin(PrimitiveType.Lines);
Но все нарисованное выглядит пиксельно и убого. Хочется рисовать красивые плавные линии ( к примеру, с градиентом цвета от середины линии к краям в перпендикулярном направлении). Как это делать?
Пока все, может потом еще вспомню.
Спасибо.

Ответы318209332664

7 янв 2017, 13:09 737 318209

>>318170
Во-первых, всё, что ниже GL 3.3 выкинь на помойку.
Во-вторых, для какого-то простого 2д лучше юзай SFML.
Там, кстати, есть возможность использования шейдеров.

4 Кб, 500x500
8 янв 2017, 12:19 738 318311

Дело такое. Как заменить цвет определенных пикселов при наложении текстуры? Например у меня есть текстура со спрайтом котика. Я хочу использовать ее для рисования котиков с разноцветными глазами. Для этого пикселы глаз в текстуре я рисую например маджентой. Как мне при наложении перекрасить их в нужный цвет не меняя остальные?

Ответы318312332685

8 янв 2017, 12:37 739 318312

>>318311
Масками.

Ответы318313

8 янв 2017, 12:41 740 318313

>>318312
объясни нормально. я только вчера жл учить начал

Ответы318483

9 янв 2017, 08:31 741 318483

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

10 янв 2017, 11:30 742 318627

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

Ответы318630332769

10 янв 2017, 11:32 743 318628

Есть множество текстур 6464 (вернее это одна большая текстура с кусками по 6464), нужно прорисовывать фон соответствующий размерам экрана из этих кусков по 64. Сначала я думал на ходу генерировать одну текстуру размером с экран и просто отправлять её на прорисовку как фон. Однако после движения камеры (внутренней камеры) фон должен смещаться. И здесь нужно его пере генерировать, смещая часть и дорисовывая другие блоки с другой стороны. После этого меня посетила идея разбить фон на участки скажем по 512*512, и генерировать их. И прорисовывать фон из этих текстур. И генерировать новые при необходимости. Или не стоит заворачиваться и просто пере генерировать фоновую текстуру каждый раз?

Ответы318631

10 янв 2017, 11:39 744 318630

>>318627
Опенггл это набор си функций. Практически любой язык поддерживает вызов си функций из себя. Вот к примеру один такой список: https://www.khronos.org/opengl/wiki/Language_bindings первая ссылка в гугле.
Естественно ты не найдёшь материалов по этим библиотекам. По сути там просто обёртка вызова аналогичных си функций из твоего языка программирования. И что бы написать, что то на нужном тебе языке тебе нужно: Знать какую функцию ты хочешь вызвать на си - это написано в книжках по опенгл и не важно на каком языке все функции всегда вызываются одинаково. И знать как запись этой функции выглядит в твоём языке, это написано в мануале библиотеки обёртки. Конечно некоторые библиотеки поддерживают всякие плюшки, но об этом написано отдельно в их мануалах.

10 янв 2017, 11:45 745 318631

>>318628
Просто делаешь сетку и отрисовываешь.

216 Кб, 1577x832
12 янв 2017, 13:53 746 319180

Сап, Господа. Вроде пишу по тутариалу, но возникла такая проблема. Решил обратиться в тред, т.к. сам я разбираться буду от одного дня и до недели/двух недель. Можете объяснить в чём возникла проблема? Серьёзно, исходный код, прилагающийся к тутариалу, смотрел уже.
Если есть какие-то арф. ошибки в посте, то сори

Ответы319181332801

12 янв 2017, 13:56 747 319181

>>319180
Отвечает Капитан Очевидность:
У тебя не определена переменная vertexShaderSource.

Ответы319184

12 янв 2017, 14:06 748 319184

>>319181
Как её определить?

Ответы319187

12 янв 2017, 14:13 749 319187

>>319184
char * vertexShaderSource;
Не забудь в нее исходник шейдера положить, а то компилировать нечего будет.

Ответы319193

12 янв 2017, 14:19 750 319193

>>319187
спасибо, с меня пиво

12 янв 2017, 17:20 751 319335

>>319000
если убрать все из рендера и оставить только очистку буферов все равно падает?

22 Кб, 295x263
18 янв 2017, 15:55 752 322484

Есть объект , состоящий из quads , проблема в том, что квады прорисовываться сразу и так получается , что внешние не видят внутренние , и все они ориентируются на фон ( за прозрачными частями не видно сзади стоящие квады, а сразу видно фон) .
сообсвенно вопрос , как это исправить.

18 янв 2017, 16:27 753 322531

>>322530
>включенным блендингом
включен

18 янв 2017, 16:28 754 322535

>предварительно отсортировав, начиная с дальних от камеры.
т.е. каждый квад прорисовывать отдельно( я прорисовываю пачкой).

18 янв 2017, 16:30 755 322538

>>322533
GL_ONE, GL_ONE_MINUS_SRC_ALPHA

18 янв 2017, 16:37 756 322548

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

18 янв 2017, 16:41 757 322551

>>322542
вот оригинал текстуры
http://rgho.st/8gqrmvCgR

18 янв 2017, 16:52 758 322558

919 Кб, 2960x105095 Кб, 1274x464

>>322542
Бленд стоял немного другой, поменял
вот так выглядить один и тот же кусок с разных сторон.

18 янв 2017, 16:57 759 322561

>>322559
>Советую подумать насчет сортировки частиц. Если их не 10кк, то можно быстро отсортировать, только не пузырьком, я например предпочитаю поразрядную сортировку - время почти O(n), только памяти жрет примерно дополнительно 200% от исходного массива, если делать побитово.
частиц всего 5к
использую движок, там он немного специфичен
http://rgho.st/8fWZFQMSr

557 Кб, 1039x616
18 янв 2017, 17:12 760 322568

>>322563
слушай, а как вот от такого дерьма избавляться ?

Ответы322573

18 янв 2017, 17:14 761 322573

>>322568
лол, убрал дискард
сделал
>умножением обоих параметров на коэффициенты в районе (0.7;1.0).
и стало не плохо

18 янв 2017, 17:25 762 322580

>>322574
ага
спасибо! пока без сортировки и ZWriteEnable = false ( не пишем в буфер глубины , что бы убрать просвет)
выглядит довольно таких приемлимо

18 янв 2017, 17:26 763 322581

>>322563
>Движок поддерживает GL_DYNAMIC_DRAW буфер?
да
slowpoke

754 Кб, 1020x574
19 янв 2017, 12:14 764 323020

>>322559
Слушай, сделал сортировку
но все равно если писать в буфер глубины, то получается херня как на скрине, только теперь с другой стороны( ну раньше грубо говоря смотря слева так было, теперь справа)

514 Кб, 1008x564
19 янв 2017, 12:19 765 323029

>>322583
и еще , ровно в центре моей текстуры
вот такая поебота , фпс на ней падает в 100-150 раз!
не знаю откуда она и как ее убрать( думал там много частитиц алгоритм нагенерил в одном месте, сделал сортировку на выброс рядом стоящих и одинаковых , но не помогло)

19 янв 2017, 12:59 766 323054

>>323050
да в центре текстуры

>>323045
от ближнего к дальнему

Ответы323153

19 янв 2017, 14:22 767 323153

>>323054
Наоборот сделай, прозрачные объекты положено рисовать от дальних к ближним.

Ответы323302

19 янв 2017, 16:31 768 323302

>>323153
проблему не решило(

19 янв 2017, 18:08 769 323379

>>322560
>Пацаны правда уже на вокселях и с самозатенением делают
пробовал я делать на вокселях
производительность полная дерьмо

3,9 Мб, webm,
1024x576
20 янв 2017, 11:17 770 323966

>>323384
вот видос, что выходит.
разницу в 1 частицу не получится сделать, ибо генерируется все процедурно.

3,1 Мб, webm,
1024x576
20 янв 2017, 11:18 771 323968

>>323384
а вот так, если не писать в zbuffer.

20 янв 2017, 11:41 772 323981

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

20 янв 2017, 11:42 773 323982

>>323971
>а сами частицы еще поворачивал бы
ну вроде бы квады, все время смотрят на меня лицом

20 янв 2017, 12:46 774 324015

>>324002
>В конце надо домножать альфу на одну хитрую функцию
у меня кстати еще трабл, у меня ща альфа умножена на 0.7
если умножать на меньшее значение , текстура начинает светиться по ебаному , ща покажу

Ответы324020

1,5 Мб, 2028x1052
20 янв 2017, 12:49 775 324020

>>324015
вот такое вот дерьмо

20 янв 2017, 12:55 776 324028

>>324025
помогло

1,8 Мб, webm,
1024x576
20 янв 2017, 17:43 777 324183

>>324025
Вот пока вот так получается.

Ответы326557

20 янв 2017, 22:42 778 324698

>>197338
кто такие последние 3?

21 янв 2017, 02:03 779 324853

>>324679
ну у меня ~4к вершин на облако
наверное надо поменьше
ну и функцию которая их генерит надо подкрутить немного, что бы не такое круглое было.

3,7 Мб, webm,
1024x576
23 янв 2017, 18:15 780 326557

>>324183

Ответы326559326664

23 янв 2017, 18:17 781 326559

>>326557
Перфект

Ответы327118

182 Кб, 720x405
23 янв 2017, 19:11 782 326664

>>326557
Ju 87 BOMBANOOLO
убийцу Ил-2 пилишь?

Ответы327117

24 янв 2017, 12:52 783 327115

>>326658
выше есть
шейдер особо не менял

24 янв 2017, 12:56 784 327117

>>326664
неа

859 Кб, 1189x777
24 янв 2017, 12:59 785 327118

>>326559
из-за чего вот такое гавно может появляться ?
как полосы

Ответы327119

596 Кб, 651x526
24 янв 2017, 13:03 786 327119

>>327118
и еще вот такое дерьмо
когда цвет задаю

24 янв 2017, 13:20 787 327129

>>327124
> генерацию частиц
они не в шейдере генерируются
спс, вроде понял, ща попробую.

24 янв 2017, 13:28 788 327133

>>327124
не помогло
вроде делаю рандомного размера частицы , все равно полосы появляются

24 янв 2017, 13:57 789 327146

>>327137
окей

24 янв 2017, 14:52 790 327172

>>327161
http://rgho.st/8CxfgrGHB

24 янв 2017, 16:12 791 327226

>>327137
бля еще ни хуя не выходит сделать его не однородного цвета

6,9 Мб, webm,
1280x512
24 янв 2017, 20:06 792 327500

Вот правильные облака

Ответы327502

6,3 Мб, webm,
960x540
sage 24 янв 2017, 20:07 793 327502

>>327500
бля, не та вебмка

Ответы327580356121356130

25 янв 2017, 00:43 794 327580

>>327502
ну у меня освещения вообще нету пока
фпс ~25 это не кайф , особенно когда в сцене одни облака.
выглядят конечно они пиздато, как сделанны ?

Ответы327592

25 янв 2017, 02:24 795 327592

>>327580
волюм+перлин+ворли+сабсерфейс скаттеринг+атмосферик скаттеринг
видяха ноутбучная интеловская

Ответы327691327798

25 янв 2017, 13:22 796 327691

>>327592
т.е. это частицами?

25 янв 2017, 13:53 797 327705

Запилил вот это в делфи.
Стоит ли перекатываться в кресты?

https://drive.google.com/file/d/0B5eCY5SALqIZTENvWUVkSm01LTQ/view

25 янв 2017, 17:05 798 327798

>>327592
отпиши плиз на почту woIJRwerqANUSya8UYPUNCTUMrs'@u если есть возможность, подскажи как размутить таких облаков, хотя бы без освещение

25 янв 2017, 20:26 799 327904

Подскажите, я правильно понимаю, как работает v-sync?
Если, например, я установил swap interval равным 1 (в духе setSwapInterval(1)); далее, если вход в функцию SwapBuffers() произойдёт раньше чем драйвер получит v-blank-сигнал от монитора, то этот поток будет остановлен до получения этого v-blank-сигнала драйвером. Сразу после этого передний и задний буферы поменяются местами и монитор считает изобржение из переднего буфера без разрывов ("tearing"), а поток, вызвавший SwapBuffers(), будет "разбужен" драйвером. То есть приём и обработка событий (пользовательского ввода, таймера...), которые могут произойти пока первый поток "спит" (в SwapBuffers()), нужно производить в других потоках. Если же драйвер получит v-blank-сигнал раньше, чем будет вызвана SwapBuffers(), то поток, вызвавший SwapBuffers(), не блокируется, буферы меняются сразу же, ну и тк делее.
Это всё верно, или нет?
Не очень понятно, поток будет остановлен точно внтри SwapBuffers(), или есть вероятность, что он может проскочить дальше?

Ответы332515

27 янв 2017, 20:10 800 329129

Я хочу детектить столкновение в 2д пространстве через рендер в свой фреймбуффер с каким-нибудь stencil буфером. Что-нибудь в буфер и положу, а как потом эффективно прочитать оттуда?
Или может все же как-то можно передать флажок из шейдера?

Ответы332397344849

28 янв 2017, 02:45 801 329369

>>329305
Текстурки кривые, описать формально сложно.
Так-то, конечно, и без gpu не с хер задержка в двадэ-то, но хочется чтоб малейшее соприкосновение на экране детектилось. Да и спортивный инетрес.

Мб в дальнейшем будут тысячи невыпуклых фигур -- поди посчитай все!

Ответы329894

29 янв 2017, 00:45 802 329894

>>329369
Видеокарта для такого не подходит из-за сильных задержек и доступа через PCI-E. Сделай софтовый растеризатор с консервативной растеризатором, должно выйти если не годно, то хотя бы забавно..

Ответы329895

29 янв 2017, 00:49 803 329895

>>329894
>консервативной растеризацией

29 янв 2017, 16:52 804 331941

>>195958
С пылесоса пишешь?

29 янв 2017, 19:28 805 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 янв 2017, 19:57 806 332515

>>327904
если setSwapInterval(1), и SwapBuffers() ждет двух событий: когда закончится рендер и затем v-blank-сигнала, пока эти события не произойдут поток заблокирован.

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

Вот тут чувак придумал костыль, с использованием glDeleteSync, нахуя не знаю, но может пригодится.
http://stackoverflow.com/questions/5829881/avoid-waiting-on-swapbuffers

29 янв 2017, 20:19 807 332664

>>318170
> GL.Begin(PrimitiveType.Lines);
Забудь. OpenGL 4.0 Core Profile + GLSL - это твоя дорога.

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

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

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

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

> Пока все, может потом еще вспомню.
В какой среде хуяришь? Видюха какая?

29 янв 2017, 20:23 808 332685

>>318311
В пиксельном шейдере при отрисовке кота заменяешь условный цвет глаз, на тот который передаёшь снаружи через uniform переменную.

Более нормальный подход: используешь для задания цвета смещение его в спектре в цветовой модели HSV/HSB, нак удобне поменять желтый на зеленый с оттенками. Для обозначения областей можешь использовать альфа-канал, размечая разные области для закраски можешь использовать альфаканал.

29 янв 2017, 20:35 809 332769

>>318627
Первые же ссылки в гоголе:
haskell : https://wiki.haskell.org/OpenGLTutorial1
ruby : http://ruby-opengl.rubyforge.org/tutorial.html

Опять забанили за порнуху?

29 янв 2017, 20:38 810 332790

>>319477
Хуя ты молодец. Еще возмущаешся, что детерминированная машина из-за твоего косяка видишь ли не работает. Охуенчик.

29 янв 2017, 20:40 811 332801

>>319180
Бля. У тебя лог ошибок для того и дан, что бы ты читал, что там написано.

31 янв 2017, 10:21 812 344849

>>329129
Возьми любой физический движок и заюзай библиотеку обнаружения столкновений из него. Для столкновений уже давно придуманы быстрые алгоритмы, не надо изобретать велосипед.

31 янв 2017, 10:49 813 344872

>>333815
Шта?

2 фев 2017, 17:09 814 356121

>>327502
это воксели?

2 фев 2017, 18:12 815 356130

>>327502
как вообще сделать такое?
есть какие-нибудь мануалы?
хотя бы что-то примерное?

28 Кб, 643x503
8 фев 2017, 17:49 816 368929

>>195365 (OP)
Хуй знает, туда ли вкатился, но попробую. Решил попробовать попипасть под ГейОСь на СДЛ, запилил по первому попавшемуся туториалу окошко - а в нем какие-то артефакты, и хуй знает, нормально ли это и как их убрать. SDL_RenderClear пробовал, не помогает.
Что я делаю не так?

Ответы369010369036371291

8 фев 2017, 19:19 817 369010

>>368929
Где код?

Ответы369043

8 фев 2017, 19:50 818 369036

>>368929
> ГейОСь
Кек, удачи тебе, надюсь не амд под капотом.

Ответы369043

8 фев 2017, 20:01 819 369043

>>369036
Такс-такс, у меня прошка 2011 года, там таки АМД. Ты же не будешь мне намекать на ЗАПЕКАНКУ? В играх-то все нормально.

>>369010
Отсюда:
http://lazyfoo.net/tutorials/SDL/02_getting_an_image_on_the_screen/index.php

Ответы369110

8 фев 2017, 21:36 820 369110

>>369043
> Отсюда
Потом выше ты привёл функцию SDL_RenderClear
Эта функцию из SDL2, а ты даёшь ссылку на урок по SDL1
Зачем?

Ответы371291

22 Кб, 510x264
10 фев 2017, 04:04 821 370572

Зачем вам опенгл? Это же графический ассемблер сука.
Сука движкопейсатели.

Ответы370584

10 фев 2017, 04:29 822 370584

>>370572
Почему ты решил, что опенгл используется только в игростроении?

Ответы371053

10 фев 2017, 13:43 823 371053

>>370584
Я про гры ни слова не написал.
В любых других областях используют движки. Или ты думаешь что NASA отрисовывает треугольники и изучает GL_BLENDы, бесконечными списки ARB констант и всякое говно вида glEnable glDisable.

Ответы371127371316

10 фев 2017, 14:26 824 371127

>>371053
> Я про гры ни слова не написал.
> /gd/
> движкописатели
Да, наверное, ты говорил про аэродинамику.

10 фев 2017, 14:54 825 371148

OpenGL в /gd не нужен.
</thread>

21 Кб, 804x621
10 фев 2017, 18:38 826 371291

>>369110
>>368929
Немного разобрался. Теперь я умею выводить квадратики, менять цвета и считывать ввод с клавиатуры/мыши. Сейчас буду разбираться с рендерингом шрифтов и png. Ву-ху!

Ответы371293387630

10 фев 2017, 18:41 827 371293

>>371291
Бери сразу какой-нибудь ImageMagic или DevIL и проблем знать не будешь, как с каким-нибудь libpng.

Ответы371296371429

10 фев 2017, 18:44 828 371296

>>371293
stb_image

Ответы371311

10 фев 2017, 18:59 829 371311

>>371296
Я этот хедер глянул, ебать они его на 7 тыщ строк развели...

10 фев 2017, 19:12 830 371316

>>371053
>В любых других областях используют движки.
Движок сам себя не напишет

10 фев 2017, 19:23 831 371334

Кто-нить парсил форматы PMD/PMX?
У меня взлетело. Сейчас подпиливаю к ним Bullet

10 фев 2017, 22:14 832 371429

>>371293
Хорошо, для шрифтов - FreeType.

Ответы372709372780372802

11 фев 2017, 20:55 833 372709

>>371429
>FreeType
В нём метода нарисовать_заебись(строку), рисует он исключительно по буквам, а потом эти буквы ещё и в слова собрать нужно будет. Это только кажется тривиальным, пока не знаешь, что такое кернинг и лигатуры (а если ещё захочешь для жирного саудовского рынка что-то напедалить - тогда вообще можно будет повеситься с арабским письмом).
Короче, использовать нужно harfbuzz.

11 фев 2017, 22:47 834 372780

>>371429
>Хорошо, для шрифтов - FreeType.
Нахуя этого монстра тащить? Для всего хватает stb_truetype, да и свой рендер навелосипедить - дело пары недель.

Ответы372802

11 фев 2017, 23:39 835 372802

>>371429
>>372780
зочем штифты?

Ответы372872

12 фев 2017, 00:35 836 372872

>>372802
Сделать консоль как в квейке.

13 фев 2017, 11:01 837 375483

как мне проверить в fragment shader, что я НЕ передаю текстуру?

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

чтобы переключить подсветку. Какие там значения возможны-то?

Ответы375513375644

13 фев 2017, 11:23 838 375513

>>375483
cykablat

http://stackoverflow.com/questions/24841612/how-to-check-if-a-sampler-is-null-in-glsl

13 фев 2017, 14:25 839 375644

>>375483
Лучше опиши что ты именно хочешь.

Ответы375911

13 фев 2017, 17:46 840 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 фев 2017, 17:46 840 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);

}

Показать весь текст
Ответы375925

13 фев 2017, 18:00 841 375925

>>375911
Не проще биндить текстуру из белого пикселя по умолчанию?

Ответы375943

13 фев 2017, 18:19 842 375943

>>375925
это для меня сейчас временная мера, пока не разобрался, как решено с текстурами у второй модели.
Первая - PMD, вторая - PMX. Но японец, написавший парсер, сваял два класса с несовместимыми по духу структурами данных.
Поэтому во второй ещё ничего не биндится совсем.

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

Ответы376832

14 фев 2017, 04:11 843 376832

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

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

Лучше пиши сразу на 3,3+ версии

Ответы377509

14 фев 2017, 08:32 844 377509

>>376832
>Текстуру тебе надо всегда передавать во фрагментный шейдер
туда и передаю

>Лучше пиши сразу на 3,3+ версии
какая альтернатива для gluSphere, gluCylinder и т.д.

Ответы377568

14 фев 2017, 08:50 845 377568

>>377509
> какая альтернатива для
Написать самому или читать какой-нибудь .obj файл.

14 фев 2017, 19:52 846 378116

Есть одна задача, к которой я никак не могу найти решение. Помоги мне, анон?

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

Я не могу рендерить каждую вариацию в свою текстуру (или в одну мегатекстуру), на это уйдет вся память, их может быть около 1000 разных и каждая должна иметь разрешение в районе 1000х1000х32бпп, а это уже 4гб. Я хочу найти способ как мне эффективно рендерить слоеные плоскости в трехмерном пространстве. Может быть есть известные решения? Можно, наверное, их постоянно сортировать и рисовать без z-буфера, но я не знаю насколько это эффективно (учитывая что они довольно часто перемещаются в пространстве, хотя камера в основном неподвижна).

Ответы378149380966

14 фев 2017, 20:12 847 378149

>>378116
> плоских поверхностей с составным содержимым. Можно воспринимать это как карточки
Что это значит?

Ответы378242

14 фев 2017, 20:23 848 378154

>>195365 (OP)
Анон, у меня вопрос простой.
Как посчитать матрицу вида?
Работающую камеру брал отсюда: https://code.google.com/archive/p/gl33lessons/
А там она на матрицах, а не на векторах.
Как ты себя реализовывал эту матрицу?

Ответы378164

14 фев 2017, 20:50 849 378164

>>378154
https://www.youtube.com/watch?v=nLnqnB4QU-4&index=51&list=PL0AB023E769342AFE

классные тьюториалы у него
заль, что уже года 3 не появлялся...

14 фев 2017, 21:42 850 378242

>>378149
Ну смотри, у тебя есть карточка. У нее есть рамка, рисунок, подпись. Все это в каком-то лэйауте лежит на плоском кваде. Вот лэйаут задается набором квадов, лежащих в одной плоскости. У каждого лэйаута свои размеры и своя текстура.
Это как слои в фотошопе, только разного размера, а не каждый слой по размеру листа.

Ответы378248378288

14 фев 2017, 21:44 851 378248

>>378242
>У каждого квада свои размеры и своя текстура.
фикс

14 фев 2017, 22:15 852 378288

>>378242
Ну сами текстуры можешь хранить в GL_TEXTURE2D, а в GL_TEXTURE2D_ARRAY.
А при помощи инстансинга рисовать свои плоскости.

Ответы378849

15 фев 2017, 08:50 853 378849

>>378288
Но квады лежат в одной плоскости, там будет z-tearing, если включить z-buffer. А если выключить, то придется на каждое движение все сортировать.

Ответы378852380840

15 фев 2017, 08:56 854 378852

>>378849
>z-tearing
Z-fighting конечно

16 фев 2017, 04:34 855 380840

>>378849
Рисуй тогда с небольшим отступом в несколько пикселей.

Ответы380853

16 фев 2017, 08:31 856 380853

>>380840
Это костыли. Если объект будет достаточно далеко от камеры, проекционная матрица съест всю точность и будет тот же z-fighting. А если делать отступы с рассчетом на дальность, то при приближении они будут слишком большими.

Ответы380857380879

16 фев 2017, 09:30 857 380857

>>380853
Значит используй рендер в текстуру.

Ответы380858

16 фев 2017, 09:55 858 380858

>>380857
Я уже писал что это займет слишком много памяти. Такие тривиальные решения я и сам рассматривал, я ищу что-то более глубокое.

Ответы380860380862

16 фев 2017, 10:01 859 380860

>>380858
Ты код написал?
Проверил как оно работает?

Ответы380863

16 фев 2017, 10:15 860 380862

>>380858
Рендери свои квады тогда на определённом расстоянии друг от друга и мастурбируй.
Чем ближе квад к камере тем он меньше.
И если смотреть под определённым углом то будет казаться, что они все в 1 плоскости.

Ответы380864380865

16 фев 2017, 10:17 861 380863

>>380860
Я считать умею.

16 фев 2017, 10:18 862 380864

>>380862
> мастурбируй
Блять, масштабируй.
Лол

Ответы380865

16 фев 2017, 10:25 863 380865

>>380862
>>380864
Лол, по Фрейду.
Да, тоже об этом думал. Ладно, начну с этого, а там посмотрим. Спасибо.

16 фев 2017, 12:21 864 380879

>>380853
>проекционная матрица съест всю точность и будет тот же z-fighting
http://outerra.blogspot.ru/2012/11/maximizing-depth-buffer-range-and.html

16 фев 2017, 20:34 865 380966

>>378116
https://habrahabr.ru/company/mailru/blog/248873/
Reversed Depth Buffer

17 фев 2017, 10:24 866 381077

Почему вы изучаете OpenGL, а не DirectX?

20 фев 2017, 16:34 867 381764

Vertex Array Objects вообще ещё актуальны?

Ответы381768

20 фев 2017, 16:47 868 381768

>>381764
Без них ничего не нарирсуешь.
Сам-то как думаешь?

Ответы381775

20 фев 2017, 17:02 869 381775

>>381768
Ну, можно и VBO мацать. Я про то спрашивал, не перданут ли их из стандарта, продумав замену.

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

У всех с материалами/текстурами такая же фигня (ручками блеат) или я делаю через жёпу?

Ответы381776382015

20 фев 2017, 17:06 870 381776

>>381775
Мне кажется ты не очень понимаешь что делаешь и что за что отвечает.

20 фев 2017, 17:20 871 381778

161 Кб, 1309x59739 Кб, 749x267

VAO запоминает порядок вызова glBindBuffer, glVertexAttribPointer(), glEnableVertexAttribArray(), glBindBuffer()
То есть помогает с вершинами, нормалями, цветами. Текстуры и материалы как бы этим методом не покрываются. Их ручками.

21 фев 2017, 15:02 872 382015

>>381775
>Я про то спрашивал, не перданут ли их из стандарта, продумав замену.
Ты собираешься делать свою игру дольше 20 лет?

21 фев 2017, 18:06 873 382059

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

Ответы382207382358

22 фев 2017, 10:02 874 382207

>>382059
В чём профит этих новых фич?

Ответы382208

22 фев 2017, 10:10 875 382208

>>382207
В том, что у тебя стейт не глобальный, а локальный.

22 фев 2017, 15:03 876 382298

Ебать вы все тут умные.
Решил вкатиться, но нихуя не знаю. С чего начать?

Ответы382306382314

22 фев 2017, 15:33 877 382306

>>382298
С прочтения ОП-поста пробовал?

Ответы382333

22 фев 2017, 15:49 878 382314

>>382298
https://www.youtube.com/watch?v=hQ2I8D2ogrs&list=PLSPw4ASQYyynKPY0I-QFHK0iJTjnvNUys

22 фев 2017, 16:51 879 382333

>>382306
Вот анон подтолкнул меня к одной мысли.
Надо ли при перекате делать подробное шапку?
Не однократно в треде всплывали дауны которые упорно не видят шапки.

Ответы384597

22 фев 2017, 19:14 880 382358

>>382059
По факту то ведь, с появления первых игор на вулкане уже прошло более года, и, насколько мне известно, вулкан - новое название для OpenGL Next, то бишь дальше 4.5 версии он не пойдет?
Думаю теперь, а не стоит ли заранее начать изучать новую технологию.

Ответы382671

24 фев 2017, 09:41 881 382671

>>382358
Vulkan пока что не имеет костылей, в отличие от OpenGL. Но, видится мне, с развитием технологий он, как и GL, неизбежно их приобретет. А сам OpenGL забрасывать не планировали. Его будут саппортить еще лет 20 как минимум.

27 фев 2017, 17:03 882 384597

>>382333
Видел шапку, но в ней мало конкретики, порог вхождения довольно высокий. Извините если грубо ворвался в тред, просто заметил дружественную атмосферу треда и попросил пояснить по хардкору. Разбираюсь в графоне и фичах, сам тридешник, но очень хочется получить знания богов индустрии, благодаря которым мы, холопы тут без сарказма существуем.

Ответы384606384611

27 фев 2017, 17:37 883 384606

>>384597
> но в ней мало конкретики, порог вхождения довольно высокий
Поясни что значит "мало конкретики" и "порог вхождения довольно высокий".

27 фев 2017, 18:12 884 384611

>>384597
Блджад, в шапке первая же ссылка в разделе туториалов:
http://www.learnopengl.com/
Всё разжевано и положено в рот. Куда уж ещё проще-то?

4 мар 2017, 15:12 885 386268

>>195365 (OP)
Здорова, бандиты. Не совсем по теме, но посоветуйте какую-нибудь годную либу для звука, чтобы поддерживала максимальное количество платформ, была без LGPL-параши в лицензии и поддерживала статическую линковку.

Ответы386405386917387453

sage 4 мар 2017, 22:04 886 386405

>>386268
Пиздец ты пидарас, а.

Ответы386550

5 мар 2017, 11:26 887 386550

>>386405
Что такое?

Ответы386564

sage 5 мар 2017, 13:02 888 386564

>>386550
Сам-то как думаешь?

Ответы386730

5 мар 2017, 21:26 889 386730

>>386564
Не знаю. Ты чего такой злой?

6 мар 2017, 12:17 890 386917

>>386268
SDL?

8 мар 2017, 14:53 891 387453

>>386268
PortAudio

Ответы387630

8 мар 2017, 19:26 892 387521

Ананасы, я тут слышал, что уже давненько SDL завезли под мобильные платформы, а это значит, что можно говнокодить и под ведроидом, я так понимаю. Есть какие костыли известные?
Кокос2д не хочу, потому что пошел он нахуй, вот почему (а на самом деле у него кучка довольно неприятных и я даже сказал бы ебаненьких багов)

Ответы389209389242

104 Кб, 798x623
9 мар 2017, 04:11 893 387630

>>387453
Похоже, на то, что нужно.

>>371291
А я продолжаю пилить свой 2D-движок. Для PNG сначала писал свой костыль, но потом нашел отличную маленькую либу upng с хорошей лицензией - и встроил ее. Запилил биндинги для Lua, пишу документацию. Может, когда-нибудь и на гитхаб выложу.

Ответы387631

9 мар 2017, 04:45 894 387631

>>387630
stb_image в помощь.

Ответы387698387768

9 мар 2017, 12:19 895 387698

>>387631
Да я хочу по-минимуму чужие библиотеки в проект таскать, я даже от zlib отказался.

Ответы387703

9 мар 2017, 13:06 896 387703

>>387698
Вот именно поэтому и stb_image. Оно легче и компактнее upng, и лицензия "делайте что хотите, мне похуй".

Ответы387768388208

9 мар 2017, 17:59 897 387768

>>387703
>>387631
Хм, вижу, что там и рендеринг шрифтов есть. Призадумался.

Ответы387885388208389308

10 мар 2017, 02:54 898 387885

>>387768
sdl_ttf

68 Кб, 800x628
11 мар 2017, 03:25 899 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 мар 2017, 20:35 900 389113

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

Ответы389122389177

13 мар 2017, 21:21 901 389122

>>389113
массив под текстуру просто в коде заведи и всё

13 мар 2017, 22:08 902 389132

Из PBO можно не скопировать, а перенести данные в текстуру?

Ответы389654

14 мар 2017, 00:24 903 389177

>>389113
Передавай массив в glTexSubImage или как там эта функция называется.

14 мар 2017, 07:24 904 389209

>>387521
Двачую вопрос.

85 Кб, 480x600
14 мар 2017, 11:46 905 389242

>>387521
SDL увы и не под каждым линухом работает (Mint, например).
Для верда компилировать сурс.

Ответы389267

14 мар 2017, 13:52 906 389267

>>389242
Не проблема, в общем-то, главное, чтобы зашло.

14 мар 2017, 15:24 907 389308

>>387768
>Хм, вижу, что там и рендеринг шрифтов есть
Неужели рисовать текст так сложно? Велосипедный SDF рендер текста пишеться за пару дней. За неделю можно написать лейаут для рич текста.

Ответы389346

14 мар 2017, 18:00 908 389346

>>389308
Но зачем? Велосипеды велосипедами, но зачем решать задачу, которая была тысячу раз решена для тебя и существуют проверенные, вылизанные до мелочей решения, лучше которых ты всё равно не сделаешь?

Ответы389352389372

14 мар 2017, 18:12 909 389352

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

Ответы389389

14 мар 2017, 18:43 910 389372

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

Ответы389389

14 мар 2017, 19:03 911 389389

>>389352
>До сих пор нет нормального способа векторную графику рисовать целиком на видяхе.
Настало время прохладных историй.
Приятно, наверное, ощущать себя дебилом, сидя в треде про OpenGL и утверждая, что нет способов рисовать векторную графику на видяхе?
>>389372
У того же stb_truetype 0(ноль, нуль, зеро, О с черточкой, нисколько, ни одного, отсутствуют) зависимостей, кроме CRT(но блеать мы не на ассемблере пишем, чтобы зависимостей от CRT не было).

Ответы389403389407

14 мар 2017, 19:23 912 389403

>>389389
>нет способов рисовать векторную графику на видяхе?
Представь себе, именно так дело и обстоит. На мобилках есть OpenVG, на десктопе решения у отдельных вендоров вроде NV_path_rendering, а нормальной (корректно рисующей) полностью ускоренной либы для графики до сих пор нет. Skia, например, частично на проце все рисует, direct2d - тоже.

14 мар 2017, 19:29 913 389407

>>389389
> stb_truetype
> вылизанные до мелочей решения
Там такой же велосипедный рендер на коленке, причем тормозной и кривоватый. Она вполне может неправильно рассчитать геометрию для какого-нибудь хитрожопого глифа и нарисовать тебе сегфолт или тихо насрать в память.

26 Кб, 400x265
14 мар 2017, 23:15 914 389495

Подскажите, пожалуйста, кто знает.
Раньше в OpenGL можно было рисовать, используя не float, а integer-координаты. Тогда они означали пикселы. Сейчас, с приходом разных шейдеров, функции вроде glVertex2i устарели, не так ли (теперь, DrawElements и проч.)? Какой наилучший способ рисовать 2D в пиксельных координатах сейчас?
Насколько я понял, что бы я не передавал в вертексный шейдер, gl_position всегда ждёт флоаты в формате vec4.

14 мар 2017, 23:44 915 389499

Я спрашиваю просто из-за такой проблемы, что когда масштабирую окно, картинка на мгновение растягивается (особенно заметно в верхней части окна), а только потом перерисовывается правильно. Потом попробую сделать как тут ОП пишет - вызывать swapBuffers не после рендера, а до glViewport. https://groups.google.com/forum/#!topic/angleproject/RvyVkjRCQGU

Ответы389506

15 мар 2017, 00:09 916 389506

>>389499
Целочисленные координаты тебе не тут точно не помогут. Артефакты скорее всего от оконного менеджера идут, а не от того, как ты рендеришь.

Ответы389507

15 мар 2017, 00:17 917 389507

>>389506
Возможно мою проблему решит замена glfwGetFramebufferSize на glfwSetFramebufferSizeCallback(window, framebuffer_size_callback);

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

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

Попробую, наверно, завтра, если время будет.

34 Кб, 1378x570
15 мар 2017, 00:32 918 389512

Возможно непонятно объяснил. На всякий случай, вот картинка. Вот хелловорлд:
https://github.com/georgy7/dtype/blob/97c9bcd66236ecdd91b6941ccae20a4669f21969/examples/base/abstract_app.d
https://github.com/georgy7/dtype/blob/97c9bcd66236ecdd91b6941ccae20a4669f21969/examples/blank1_rectangle.d
Иначе о чём без кода говорить.

Ответы389527389855

15 мар 2017, 01:23 919 389527

>>389512
Там проблема ниже, чем glfw. Где-то в wgl/xgl. Отрисовка окна происходит быстрее, чем изменение размера контекста, из-за этого и артефакты. Обычно на это все забивают, все равно через кадр все устаканивается.

15 мар 2017, 14:01 920 389654

>>389132
Бамп воросу. После анлока буффера можно сказать драйверу что у меня там текстура, а не гонять данные туда-сюда по VRAMу?

Ответы389667389668

15 мар 2017, 15:19 921 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);

Ответы389668

15 мар 2017, 15:23 922 389668

>>389654
>>389667
Перечитал вопрос и понял что это не то, что тебе надо. Так, как ты хочешь, сделать нельзя, PBO и текстура это слишком разные вещи, чтобы быть взаимозаменяемыми. Там данные хранятся в разных форматах.

Ответы389697

15 мар 2017, 16:34 923 389697

>>389668
PBO и прочая шняга это условности. Нужно замапить видеопамять и перегнать из системной все что нужно в любом формате. А так получается лишний оверхед на копирование. Надеюсь в Вулкане такой хуйни нет.

Ответы389766

15 мар 2017, 21:49 924 389766

>>389697
Надейся.
Первое что тебе придется делать в вулкане, елси ты хочешь использовать физическую память на видеокарте, - это самому перегонять кучу данных сначала в область памяти API (та же оперативка, только ОСОБЕННАЯ), а уже потом удаленными командами для видяхи коипровать их в видеопамять.

16 мар 2017, 09:36 925 389855

Решил проблему перепроверкой после рендера и, если поменялся размер, перерендером кадра.
https://github.com/georgy7/dtype/commit/727bba4419c38f1646c4de227d80d84bb1bfbb56#diff-211c4ecbe22099ab129604fde1df4b2c
>>389512-кун

17 мар 2017, 16:06 926 390377

47 Кб, 1102x33018 Кб, 493x79324 Кб, 495x79752x5

Почему не получается наложить текстуру? Она накладывается как попало (2). И вверху блоки должны быть другого цвета (3). Текстура (4).
Код: http://pastebin.com/iZQuARGw

Ответы390462390631

17 мар 2017, 18:29 927 390462

>>390377
Потому что учи шейдеры, вот почему

6 Кб, 520x520
18 мар 2017, 04:26 928 390631

>>390377
Во-первых, нахуй старьё.
Во-вторых, ты проебался с текстурными координатами.

18 мар 2017, 17:26 929 390741

>>195365 (OP)
Я хотел задать вопрос, но сам нашёл ответ. Нельзя between glBegin i glEnd

19 мар 2017, 18:06 930 391175

>>195365 (OP)
Почему Опенгл такой ебанутый?

Ответы391177

19 мар 2017, 18:18 931 391177

>>391175
Ты имел в виду "почему в мире есть что-то сложнее 1+1"?

Ответы391186

19 мар 2017, 19:16 932 391186

>>391177
Нет, почему в Опенгле такая ебанутая система координат? Впрочем это наверное моя оплошность, ведь я его пытаюсь использовать для создания 2D игры. А сам опенгл очень лёгок. Я SDL не осилил, на простом WinAPI жуткие тормоза, а Опенгл легче всего этого дерьма. Но другие библиотеки для создания 2D игры я не нашёл.

Ответы391230391334

19 мар 2017, 21:29 933 391230

>>391186
>такая ебанутая система координат?
Почему ебанутая? Как в математике: если х вправо, то у - вверх, x cross y = z, y cross z = x, z cross x = y. Все строго и логично. Плюс матрицы в памяти лежат по столбцам, что гораздо удобнее - можно сразу с векторами базиса работать.

20 мар 2017, 10:58 934 391334

>>391186
Так SDL это обертка над opengl & directx. Он же наоборот упрощает разработку. Как он может быть сложнее, или я что-то не понимаю?

21 мар 2017, 09:27 935 391478

как нарисовать тестуру с помощью примитивов? С# openTK

Ответы391482

21 мар 2017, 09:39 936 391482

>>391478
два треугольника

Ответы391487

21 мар 2017, 11:02 937 391487

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

Ответы391558

21 мар 2017, 16:47 938 391558

>>391487
напиши хук, который скриншоты делает.

21 мар 2017, 17:03 939 391562

Хочу войти в OpenGL. Где туториалы по последним версиями на Си? Доставь годноты, Анон.

Ответы391563391573

21 мар 2017, 17:04 940 391563

>>391562
> Где туториалы
Где найти туториалы
fix

21 мар 2017, 17:46 941 391573

>>391562
https://github.com/glcoder/gl33lessons
http://www.openglsuperbible.com/

Ответы391578

21 мар 2017, 17:54 942 391578

>>391573
Это же всё кресы. А в первой ссылке ещё и винда, упаси боже.
Алсо, третья версия разве не устаревшая? Сейчас же 4.5 есть.

Ответы391622

21 мар 2017, 21:55 943 391622

>>391578
Ещё один даун.
Откуда вы лезите?

Ответы392264392717

182 Кб, 1286x758
24 мар 2017, 11:25 944 392236

Хелоу аноны. Мне нужно размыть модельку. Всю сцену я могу розмыть, это не проблема. Мне нужно размыть только одну модель, и при этом только видимую ее часть если ее что-то заслоняет. Как в FBO забрать только видимую часть модели в данный момент? Я придумал конечено же какую-то хуйню не производительную, забирать сцену с моделью и без а потом находить разницу и размывать ее, но я думаю что это херово два раза рендерить в FBO. Как это нормальные люди делают?

Ответы392271

24 мар 2017, 13:04 945 392264

>>391622
Весеннее обострение, похоже.

24 мар 2017, 13:24 946 392271

>>392236
Попробуй рисовать модель с записью в стенсил, а потом обычный screen space motion blur с тестом.

Ответы392286

29 Кб, 485x281
24 мар 2017, 14:01 947 392283

Здрасьте. Есть вопрос по поводу, как сформировать текстуру в виде массива с данными, не используя при этом отдельный 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);
}
}

Ответы392303392304

24 мар 2017, 14:25 948 392286

>>392271
Блин, спасибо большое, это то что нужно. Я чет проморгал stncil buffer, впервые узнал а нагуглить раньше чет не получалось.

24 мар 2017, 15:49 949 392303

>>392283
Не понял что ты имеешь ввиду, но просто запиши в массив RGB данные и в функции создания текстуры указывай на этот массив.

Ответы392589

24 мар 2017, 15:56 950 392304

>>392283
Texture buffer object

Ответы392589392867

25 мар 2017, 16:50 951 392589

>>392303
Ну то есть мне надо засунуть массив, задаваемый в проге, из 128 RGB цветов, своих, не используя для этого файлов и сторонних библиотек.
>>392304
Надеюсь поможет

26 мар 2017, 12:56 952 392717

>>391622
Ладно, извини, я не разобрался.

Сейчас дошёл до матриц, хочу крутить треугольник. Везде для этого предлагают библиотеку GLM, но работает ли она под Си? На википедии написано, что это для C++, в 3.5 статей всё на C++, у неё заголовки .hpp, я не могу скомпилять прогу с ней, gcc ругается. То есть только кресты? Есть ещё какие-то библиотеки? Я бы не хотел велосипедить всё это дело, я хочу трудэ писать.

Ответы392727392810392871

26 мар 2017, 14:58 953 392727

>>392717
> Я бы не хотел велосипедить всё это дело
> хочет писать на Си
Ты болен шизофренией?

Ответы392728

26 мар 2017, 15:02 954 392728

>>392727
Почему Си == велосипеды в сравнении с плюсами?

Ответы392797

26 мар 2017, 19:21 955 392739

Если разобраться в OpenGL, то с остальными технологиями Chronos особенно WebGL тоже всё понятно будет?

27 мар 2017, 12:16 956 392797

>>392728
Ты говноед и не понял ещё, что кресты - ужасающее дерьмо.

27 мар 2017, 13:38 957 392810

>>392717
У GLM же вроде была си-версия?
Впрочем, хуй с тобой, идейные пидарасы, не понимающие сути идеи, за которую борцуют, должны страдать.

Ответы392811

27 мар 2017, 13:42 958 392811

>>392810
Я просто пишу на том, на чём мне удобно писать, иди на хуй.

Ответы392822

27 мар 2017, 14:56 959 392822

>>392811
Если ты не можешь добавить одну строчку в код и набрать три символа в консоли - то ты таки идейный пидарас, так что продолжай сосать.

Ответы392823

27 мар 2017, 15:01 960 392823

>>392822
О чём ты говоришь? О glm? Ну расскажи мне как что-то скомпилять с ним сишным компилятором. Если нет, то выражайся яснее.

Ответы392918

27 мар 2017, 15:21 961 392827

Я о g++ блядь. Но ты же идейный, тебе ДРЕВНИЕ БОГИ ПОГРОМРОВАНИЯ ЗОПРЕТИЛИ ИСПОЛЬЗОВАТЬ!!!

Ответы392836

27 мар 2017, 15:40 962 392836

>>392827
Это сойдёт как временное решение. Сишная библиотека в любом случае нужна.

Ответы392854

27 мар 2017, 17:29 963 392854

>>392836
Блять, у возьми и напиши сам тогда.
От написания пары десятков функций ещё никому не было плохо.

Ответы392856

27 мар 2017, 17:32 964 392856

>>392854
Я не разбираюсь в этом.

Ответы392859

27 мар 2017, 17:55 965 392859

>>392856
Тогда бери готовое, проверенное, и оптимизированное(вплоть до поддержки всех simd) решение, и не выёбывайся.

27 мар 2017, 18:18 966 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

Ответы392868392872

27 мар 2017, 18:27 967 392868

>>392867
Фильтрацию текстуры поменяй на линейную, тогда он тебе все сам интерполирует.

Ответы392869

27 мар 2017, 18:31 968 392869

>>392868
В шейдере нельзя в texelFetch задавать вещественный тип. Я конечно могу сам смешивать цвета, например, если координата 98,3, то взять координату 98 и тупо прибавить к каждой rgb-составляющей 30% от разницы между цветом[99] и цветом[98].
Просто не хочу лишний раз нагружать шейдеры еще и этим (хотя если сделать это в вершинном, то вроде сильно не скажется).

Ответы392874392878

27 мар 2017, 18:36 969 392871

>>392717
>Я бы не хотел велосипедить всё это дело, я хочу трудэ писать
Написать базовую либу для векторов/матриц - дело пары дней. Заодно и разберешься что там к чему. Хинт: инверсия матрицы 4х4 общего вида требуется в 0.0001% случаев.

Ответы392885

27 мар 2017, 18:37 970 392872

>>392867
> Однако не нравится формат "текстурных координат" в формате 0-:-127 (допустим цветов 128), вместо 0-:-1, целочисленные, короче.
В смысле? Можно попробовать упаковывать во float16 координаты.

27 мар 2017, 18:39 971 392874

>>392869
>texelFetch
texture2D тебе религия запрещает использовать?

27 мар 2017, 18:46 972 392878

>>392869
Ну texelFetch для дискретных и быстрых выборок используется. Я не думаю, что твоя линейная интерполяция будет работать быстрее, чем встроенная.

27 мар 2017, 19:02 973 392885

>>392871
Да мне бы с самим opengl сначала разобраться. А то два дня пердолился а понял ровным счётом нихуя. Сейчас всё переписал, вдумчиво, и чёто-както дошло до головы-то моей, но захотелось мне камеру повращать, а тут матрицы, бляяяя пиздеееец, сложно. И вот сейчас я кажись понял суть ШОК КАМЕРА НЕ ДВИГАЕТСЯ ЭТО ПРОСТРАНСТВО ВОКРУГ МЕНЯЕТСЯ, и надо бы воплотить всё в жизнь закрепив знания, а ты предлагаешь мне на написание своей либы отвлечься. Нельзя так делать, нельзя отвлекаться.

Ответы392888392895392925

27 мар 2017, 19:10 974 392888

>>392885
>а тут матрицы, бляяяя пиздеееец, сложно
Если ты матриц не понимаешь, то за трехмерку можешь даже не браться.
Если не умеешь пользоваться гуглом - тем более:
https://github.com/arkanis/single-header-file-c-libs/blob/master/math_3d.h

Ответы392889

27 мар 2017, 19:15 975 392889

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

27 мар 2017, 19:49 976 392895

>>392885
> Да мне бы с самим opengl сначала разобраться.
Блять, да что с тобой такое?
То не нравятся ему туторы на С++, то не нравится ему шинда, то не устраивает версия ГЛа.
Может просто заткнуться и взять готовое, научиться, а потом от этого отталкиваться с понимаем что ты делаешь и к чему это приведёт?

Ответы392898

27 мар 2017, 19:59 977 392898

>>392895
> То не нравятся ему туторы на С++
Я запутаюсь.
> то не нравится ему шинда
Сложно.
> то не устраивает версия ГЛа.
Я не разобрался, о чём уже писал. Извиняюсь за это.

> Может просто заткнуться и взять готовое
Либу уже нашёл, так бы временно использовал glm.

27 мар 2017, 22:32 978 392918

>>392823
Нахуя ты на Си пишешь, ебанутый?

Ответы392922

27 мар 2017, 23:08 979 392922

>>392918
Что мне могут дать кресты?

Ответы392928

27 мар 2017, 23:42 980 392925

>>392885
Бля, не осиляю камеру. Может кто доставить понятный гайд по ней? Если этот гайд будет на русском, то вообще заебись.
Просто посчитать я посчитаю, а куда дальше просчёты отправлять, что с ними делать, зачем что-то с ними делать, как быть с шейдерами и т.д. непонятно. Помогите, Анончики. Нужно доходчивое объяснение.

28 мар 2017, 00:23 981 392928

>>392922
Кресты? RAII, смартпоинтеры, исключения, стандартную библиотеку (коллекции на шаблонах, треды, файлы, строки, регекспы и т.п.), ООП в конце концов.

А ещё лучше - пиши на джаве, там всё то же, только лучше.

Ответы392931393020

28 мар 2017, 01:58 982 392931

>>392928
>А ещё лучше - пиши на джаве,
Съеби. Просто съеби отсюда.

Ответы392933

28 мар 2017, 02:31 983 392933

>>392931
Ты вот сейчас шутки шутишь, а потом для своего ёба-оптимизированного движка на Ши будешь писать логику на каком-нибудь говноскрипте с багами, тормозным рантаймом, ебанутым ГЦ и прочими радостями опенсорса.

Ответы392937392997393003

80 Кб, 960x960
28 мар 2017, 02:50 984 392937

>>392933
>для своего ёба-оптимизированного движка на Ши будешь писать логику на каком-нибудь говноскрипте

28 мар 2017, 14:32 985 392997

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

28 мар 2017, 14:55 986 393003

>>392933
Если ты лично настолько дебил, чтобы так делать, это ещё не значит, что все остальные вокруг тебя тоже дебилы и будут делать как ты.

28 мар 2017, 16:46 987 393020

>>392928
То чувство, когда в джаве нет деструкторов...
Пичаль беда, хотя бы на GC деструкторы завязывали бы, а то так, как ни крути, на крестах ресурсами в некоторых случаях управлять гораздо удобнее.

Ответы393141

29 мар 2017, 02:15 988 393141

>>393020
Ну как, есть try-with-resource, который позволяет автоматически освободить ресурсы при выходе из блока. Для простых случаев этого достаточно.

Ответы393143

29 мар 2017, 02:56 989 393143

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

36 Кб, 455x250
29 мар 2017, 07:44 990 393162

Няши, поясните, SDL хороший выбор на 2017 год? В /pr/ поясняют что мертво, нужен вулкан. А что вы скажете?

Ответы393163

29 мар 2017, 07:47 991 393163

>>393162
> SDL хороший выбор на 2017 год
А почему он должен быть плохим?

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

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

Ответы393165

29 мар 2017, 07:59 992 393165

>>393163
> А почему он должен быть плохим?
Не знаю, мне он вполне нравится, да и выглядит логичным. Главное запомнить как называются все элементы, а то без комплнетишинов тяжело писать-приходится вечно в доки лазить.
> В GLFW вроде бы добавили поддержку Вулкана.
Так это всё равно интерпритатор в API вулкана, не нужно.

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

Ты имееншь ввиду зачем мне QT? В нём удобные сигналы, и цикл выполнения. На чистых крестах пришлось бы делать что-то вроде while (true).
Или ты спрашиваешь зачем мне SDL если есть QT? В кт опенгл какой-то непонятный, почти нет документации. Ни асилил короче.

29 мар 2017, 08:09 993 393166

Итак, анон. Наступило время переката. И вот вопрос. Как организовывать шапку?
Есть мысля залить её на https://gist.github.com/ и со временем что-то убирать/добавлять т.к. в текущей шапке есть мёртвые линки (ну по крайней мере месяц назад точно).
И в будущем всё равно найдутся долбаёбы которые просят ссылки на туторы игнорирую шапку вообще.
Что скажешь?

Ответы393167393169

29 мар 2017, 08:12 994 393167

>>393166
Всё правильно считаешь. Надо как в /s - шапка на гейхабе, её никто не читает, (впрочем шапку треда тоже не читают).

Ответы393169

29 мар 2017, 08:21 995 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 ноя, 21:32 996 456524

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

Ответы456526456542456546

1,9 Мб, webm,
1280x720, 0:21
14 ноя, 21:55 997 456526

>>456524
>Что блять пошло не так в моей жизни?
Ты выбрал опенгл вместо софтвар рендерера

Ответы456542

14 ноя, 22:49 998 456542

>>456524
Ты просто ещё молодой и зёленый. Всё нормально.
А вот этого >>456526 пидораса-велосипедиста, я бы на твоём месте не слушал.

15 ноя, 00:40 999 456546

>>456524
Ты просто долбаеб необучаемый. Который просто не может:
1) прочитать
2) запомнить
3) сделать

Тред утонул или удален.
Это копия, сохраненная 23 сентября 2018 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

« /gd/В начало тредаВеб-версияНастройки/a//b//mu//s//vg/Все доски

Пользуетесь скринридером — пишите, что можно улучшить.
Host-Food.ru — надёжный хостинг от 12 руб/мес | Free DNS
Зеркала М.Двача: m2ch.hk, m2ch.lib, m2chfapiswfw2wcakptqp4o6ltgchvjuxfab7urxlduraomtlnhw5xad.onion