Сохранен 507
https://2ch.hk/gd/res/141146.html
24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

OpenGL thread

 Аноним 20/11/14 Чтв 04:03:28 #1 №141146 
14164454083610.jpg
Старый тонет, пора делать новый.

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

http://arhivach.org/thread/28624/ - Первый
http://arhivach.org/thread/47586/ - Второй
Доки:
https://www.opengl.org/sdk/docs/man2/ - OpenGL 2.1
https://www.opengl.org/sdk/docs/man3/ - OpenGL 3.3
https://www.opengl.org/sdk/docs/man4/ - OpenGL 4.5
https://developer.nvidia.com/opengl
https://www.opengl.org/wiki/Main_Page

Туториалы:
http://en.wikibooks.org/wiki/Category:OpenGL_Programming
http://www.gametutorials.com/tutorials/opengl-tutorials/
http://www.opengl-tutorial.org/
http://www.tomdalling.com/blog/
https://code.google.com/p/gl33lessons/ -
http://steps3d.narod.ru/articles.html - много статей по расширениям
http://www.lighthouse3d.com/tutorials/glsl-core-tutorial/ - GLSL туториалы
http://ogltutor.netau.net/index.html
http://www.arcsynthesis.org/gltut/

Книги:
https://www.dropbox.com/s/ct7a7byynnbm5qf/0123750792Rendering.pdf
http://mrelusive.com/books/books.html - большой список книг по геймдеву
http://rutracker.org/forum/viewtopic.php?t=625086 - GPG 1-6 части
http://www.amazon.com/Computing-Gems-Edition-Applications-Series/dp/0123859638
http://www.amazon.com/gp/reader/0321902947 - Superbible
http://kickass.so/game-engine-architecture-second-edition-2014-t9574312.html - Game Engine Architecture

Maths:
http://www.amazon.com/Math-Primer-Graphics-Development-Edition/dp/1568817231/
http://www.amazon.com/Mathematics-Programming-Computer-Graphics-Edition/dp/1435458869

по GLSL:
http://www.amazon.com/OpenGL-Development-Cookbook-Muhammad-Movania/dp/1849695040/
http://www.amazon.com/OpenGL-Shading-Language-Cookbook-Edition/dp/1782167021/

Презентации, слайды:
Красивая вводная презентация по основам графики со всякой интерактивщиной:
http://acko.net/files/fullfrontal/fullfrontal/webglmath/online.html

http://www.slideshare.net/TiagoAlexSousa/secrets-of-cryengine-3-graphics-technology
http://www.slideshare.net/cellperformance/data-oriented-design-and-c - Data-oriented Design
https://software.intel.com/en-us/articles/designing-the-framework-of-a-parallel-game-engine/

Надеюсь, ничего не забыл.
Аноним 20/11/14 Чтв 09:05:13 #2 №141149 
>>141146
Что же мы рисуем?
http://en.wikipedia.org/wiki/Rendering_equation
http://en.wikipedia.org/wiki/Bidirectional_reflectance_distribution_function

Математика онлаен:
http://www.essentialmath.com/tutorial.htm
http://chortle.ccsu.edu/vectorlessons/vectorindex.html

Математическая библиотека:
http://glm.g-truc.net/

Библиотеки для создания контекста:
http://www.glfw.org/
http://freeglut.sourceforge.net/

Подключение расширений:
http://glew.sourceforge.net/

Ещё тюториалы:
http://code.google.com/p/gl33lessons/
http://vbomesh.blogspot.ru/
https://developer.nvidia.com/opengl
http://ogldev.atspace.co.uk/
http://www.tomdalling.com/blog/

ТЕХНОЛОГИИ

Диферд
http://www.neuroproductions.be/opengl/making-a-3d-game-with-opengl-deferred-shading-and-stuff/
http://onlygraphix.com/2014/01/18/oglplus-tutorialdeferred-renderer/
http://steps3d.narod.ru/tutorials/lpp-tutorial.html
http://steps3d.narod.ru/tutorials/ds-tutorial.html

ССАО/ССДО
http://habrahabr.ru/post/204260/
http://people.mpi-inf.mpg.de/~ritschel/Papers/SSDO.pdf

Инстансинг
http://ogldev.atspace.co.uk/www/tutorial33/tutorial33.html
https://www.youtube.com/watch?v=dMVhGJkALW0

Двигло
http://www.slideshare.net/cellperformance/data-oriented-design-and-c
http://www.slideshare.net/TiagoAlexSousa/secrets-of-cryengine-3-graphics-technology

Нарисовать текст в ОГЛ
http://jonmacey.blogspot.de/2011/10/text-rendering-using-opengl-32.html


Добавочка
Аноним 20/11/14 Чтв 13:33:42 #3 №141161 
14164796222620.jpg
Освящаю. Остальные пока что рендерятся.
Аноним 20/11/14 Чтв 16:20:36 #4 №141171 
>>141149
Ты бы хоть шапку почитал бы, а так спасибо.
Аноним 20/11/14 Чтв 19:40:08 #5 №141184 
Аноны, такой вопрос: создаю пустую текстуру, потом уже загружаю туда данные через subimage. Что будет в пустых областях?
Аноним 20/11/14 Чтв 20:20:03 #6 №141186 
>>141184
то что записал, то и будет. Если ничего не записывал, будет мусор, записывай нули
Аноним 20/11/14 Чтв 20:28:13 #7 №141187 
>>141186
Спасибо.
Аноним 21/11/14 Птн 09:45:04 #8 №141214 
Попробовал библиотеку stb.
https://github.com/nothings/stb
Очень годная.
Автора её Кармак готов пригласить в Окусул. Так что тру.
Аноним 21/11/14 Птн 20:16:18 #9 №141276 
14165901788170.jpg
Гуй перекрывается мешем, что делать?
Аноним 21/11/14 Птн 20:26:43 #10 №141278 
>>141276
Рендери отдельно сцену и отдельно гуй в картинку с прозрачностью. Потом мерджи обе картинки в одну, как в фотошопе.
мимо вообще ниибу в огл
Аноним 21/11/14 Птн 21:32:01 #11 №141287 
>>141276
Нонсенс.
Рисуешь сцену.
Выключаешь з-тест.
Рисуешь гуй.

Это не первый тупорылый вопрос в ОГЛ тредах, зачем ты это делаешь?
Аноним 21/11/14 Птн 21:55:18 #12 №141290 
>>141146
>OpenGL 4.5
Трепетно ожидаем новой ревизии.
https://ru.wikipedia.org/wiki/Mantle_%28API%29
http://www.guru3d.com/news-story/amd-mantle-might-end-up-in-the-next-revision-of-opengl.html
Аноним 21/11/14 Птн 22:04:19 #13 №141291 
>>141287
Вот я ебнутый, был же уверен, что отключил, спасибо, няш :3.
Аноним 22/11/14 Суб 15:37:46 #14 №141319 
Сап, ананасы. В общем, проблема такая.
Когда пробовал и изучал гл по началу, то для вершин, текстурных координат заводил новый vbo и, соответственно, с атрибутами у меня было меньше возни. Ну то есть для вершин, текстурных координат был свой vbo и начало данных в атрибутах я ставил 0.
Проблема такая. Как в один буфер поместить все данные и выставить атрибуты правильно?
Аноним 23/11/14 Вск 01:22:16 #15 №141350 
>>141319
Разобрался.
Тащемта, нужно в начале узнать сколько данных в байтах нам надо засунуть в буфер, но не заполнять его данными, а потом через BufferSubData пихать.
Примерно так:

offset = 0;
BufferData( sizeof( position ) + sizeof( tex_coord ), null );
BufferSubData( sizeof( position ), position, offset );
offset += sizeof( position );
BufferSubData( sizeof( tex_coord ), tex_coord, offset );

и тд
Новичек Аноним 24/11/14 Пнд 01:41:47 #16 №141454 
Имеется задача: нарисовать в 3d ландшафт. Я реализовал это с помощью старых glBegin/glEnd/glRotate, вот это всё. (Ну, отрисовал треугольниками карту высот)
Теперь решил переделать с шейдерами и добавить текстуры.
Собственно вопросы:
1) Мне теперь придется самому реализовывать все повороты/увеличения с помощью матриц?
2) Как лучше всего отрисовывать ландшафт?(Имеется карта высот)
3) Какую версию OpenGL юзать? Я читал, в 4+ там появились какие-то еще шейдеры. Они мне нужны вообще?
4) Как мне научиться писать шейдеры? Что лучше прочитать? В основном попадаются просто абсолютно бесполезные статьи, из которых ничего не понятно.

Я понимаю, что вопросы, наверное, очень глупые, но я я буду благодарен, если кто-то пояснит.
Аноним 24/11/14 Пнд 02:06:32 #17 №141456 
>>141454
Лучше загугли готовое, разберись и перепеши с нуля. Велик шанс, что ты забудешь какую-нибудь фигню и потом будешь всем мозги ебать.
http://www.mbsoftworks.sk/index.php?page=tutorials&series=1&tutorial=24
Аноним 24/11/14 Пнд 02:10:28 #18 №141459 
>>141456
Ладно, я подумаю. Спасибо.
Аноним 24/11/14 Пнд 07:55:49 #19 №141464 
>>141454
В отрисовке ландшафта главное запилить алгоритм LOD, а это задача по сложнее чем просто нарисовать треугольники по карте, особенно если нужен большой ландшафт и качество.
VBO Аноним 24/11/14 Пнд 11:22:06 #20 №141470 
14168173266630.jpg
Пасаны, я, как узнал про VBO, помешался на нём совершенно. Теперь мне думается, что все объекты даже небо, даже Аллах должны быть сохранены как вершинные буферные объекты, чтобы повысить скорость отрисовки до небес нахуй.
Неужели в геймдеве используют только это? glBegin и glEnd же устаревшее говно, которое уже давно никому не сдалось.
У меня сомнения насчёт эффективности VBO, когда дело касается динамических объектов. На статичную карту-то похуй, а вот персонажей я захочу сделать двигающихся или там кубик повертеть, мне же придётся сперва себя на хую вертеть и в бубен бить, долго ебаться с установкой всяких указателей на нужные вершины. Развейте мои сомнения насчёт затратности VBO в динамике.
И что делать, если я хочу для 1000 кубов создать уникальный VBO, а потом крутить, вертеть кубы, хехей?!
Какой максимум на количество VBO объектов определён? На opengl.org что-то читал про 4Mb, но я так понял, это рекомендуемый максимум только на один объект VBO?
Аноним 24/11/14 Пнд 12:22:03 #21 №141474 
>>141470
Что-то я проиграл с твоего поста.
Алсо, я вот изучаю код Дума 3, ну который бфг - он переписан на гл 3.3.
Так вот я там заметил класс который хранит данные для уровня, ну то есть та геометрия которая не меняется и для данных динамических - противники, оружие и тд. Может быть это оно.
Но я вот я уже давно их изучаю да и с гл тоже не первый день, но всё равно не понимаю многого оттуда.
https://github.com/id-Software/DOOM-3-BFG/blob/master/neo/renderer/VertexCache.h#L75
Аноним 24/11/14 Пнд 13:31:29 #22 №141480 
>>141470
>И что делать, если я хочу для 1000 кубов
Рисуешь куб 1000 раз с 1000 разных матриц.
>максимум только на один объект VBO
Да.
>что все объекты должны быть сохранены как вершинные буферные объекты
А кроме ВБО нету способа что-либо нарисовать в ОГЛ 3.2+. ГлБуферСабЭррей тееб в помощ.
Аноним 24/11/14 Пнд 13:37:57 #23 №141481 
Запутался с матрицами совершенно. Есть сцена, с расположенными на ней объектами. Меняется позиция и угол вращения камеры. Код http://pastebin.com/a5sSYqZ0

Вращение объектов происходит относительно глобального центра, а не вокруг собственной оси. Пробовал перемещать позицию игрока в центр и сбрасывать угол камеры, потом крутить объект, перемещать его и возвращать обратно позицию игрока и угол камеры. В итоге не работало. Не понимаю логики работы.
Аноним 24/11/14 Пнд 14:53:25 #24 №141488 
>>141470
В Super Bible 6 издании на странице 125 твой ответ.
Аноним 24/11/14 Пнд 20:36:44 #25 №141511 
Начал изучать opengl 3.3 и столкнулся с непоняткой. Читаю сейчас
http://www.gamedev.ru/community/ogl/articles/lesson02
и в конце, когда делается рендеринг я вижу вот такую строку
glDrawArrays(GL_TRIANGLES, 0, vertexCount);
Как определяется что именно отрисовывается? Ну например у меня есть массив не из 3, а из 9 элементов. Как они нарисуются? Что мне сделать, чтобы нарисовать, к примеру, куб, который строится по 4 точкам?
Аноним 24/11/14 Пнд 20:53:43 #26 №141513 
>>141511
>Как определяется что именно отрисовывается
glBindBuffer(GL_ARRAY_BUFFER, meshVBO);
>4 точкам
Индексы.
Аноним 24/11/14 Пнд 21:00:35 #27 №141514 
>>141481
Сначала поворачиваешь, потом мапишь из локал в ворлд, ан е как ты - сначала в ворлд потом ротейт.
Аноним 24/11/14 Пнд 21:02:52 #28 №141515 
>>141513
Треугольники рисуются просто поочереди? То-есть 0, 1, 2 элемент - первый треугольник и 3, 4, 5 - второй? Просто по-порядку каждые 3 вершины?
Аноним 24/11/14 Пнд 21:08:04 #29 №141516 
>>141515
>просто поочереди
Почти всегда - нет. Ибо сейчас унифицированые процессоры, так что пара сотен треугольников за раз.
Аноним 24/11/14 Пнд 21:08:50 #30 №141517 
>>141515
Всё, почитал про индексы. Тогда получается, мне нужно создавать еще огромный массив, в котором будут индексы?
Аноним 24/11/14 Пнд 21:14:23 #31 №141518 
>>141517
Смотри.
Есть куб, у него 8 вершин.
Но если делать его треугольниками, то будет 66 = 36 вершин.
36 вершин == 36
3 == 108 флоатов == 432 байта.

Если делать индексами - будет 8 вершин == 24 флоата
и 123 == 36 инедксов == 36 уинта == 72 байта.
В сумме - 96 байт против 432.
Аноним 24/11/14 Пнд 21:15:52 #32 №141519 
>>141518
Умножения проебались. Слава абу, блядь.
Аноним 24/11/14 Пнд 21:19:36 #33 №141520 
>>141518
И я там не уинты, а ушорты поситал, но тебе пока хватит 65к индексов.
Аноним 24/11/14 Пнд 21:19:45 #34 №141521 
>>141518
Окей. Я понял.
А что такое 363 и 123? Как ты перешел к ним?
Аноним 24/11/14 Пнд 21:20:10 #35 №141522 
>>141521
>>141519
ок
Аноним 27/11/14 Чтв 04:45:49 #36 №141858 
>>141146
Кто-нибудь может объяснить почему сглаженные полигоны делаются с помощью какого-то там мультисэмплинга, а не просто алгоритмом Ву? Чего я не улавливаю?
Аноним 27/11/14 Чтв 11:28:06 #37 №141864 
14170768867430.jpg
>>141146
Сап, гдач.
Начал читать вторую книгу из раздела Maths.
Вначале книги говорят о том что читатель должен знать как строятся модели из вершин и полигонов. Так вот, я этого не знаю, что почитать кроме страницы в википедии? Вообще стоит ли мне это изучать, если я не делал ничего кроме тетриса в готовом движке? Мне 21, из Дефолт-сити, нехиккан и я сижу дома, так что время свободное есть, и могу в общение. Наверно таких как я миллион.
Аноним 27/11/14 Чтв 11:32:54 #38 №141865 
>>141864
>знать как строятся модели из вершин и полигонов
Чего там знать то?
Аноним 27/11/14 Чтв 11:39:50 #39 №141867 
>>141865
Ну я тупой. Я хоть и переиграл в кучу игр и немного умею в программирование, не совсем понимаю что значит это. Есть вершины в модели и они соединены полигонами, которые представляют примитивные фигуры?
sageАноним 27/11/14 Чтв 11:44:45 #40 №141868 
>>141858
>алгоритмом Ву
Для каждого внешнего пикселя полигона нужно посчитать растояние до его ближайшей прямой контура полигона и сделать его полупрозрачным. А если считать что полики рисуются в несколько ядер по сетке, то вангую ошибки смешивания полупрозрачных контуров.
А он более затратен, чем простая отрисовка в больше разрешении и масштаб с мультисемплингом.
Аноним 27/11/14 Чтв 11:46:33 #41 №141869 
>>141867
>они соединены полигонами
Полигоны состоят из вершин.
Все иди читать совою Maths.
Аноним 27/11/14 Чтв 12:02:54 #42 №141872 
>>141858
Студент 1 курса узнал про алгоритмы арстеризации? Окай, лет через 10 и до шейдеров дойдешь такими темпами.
Аноним 27/11/14 Чтв 12:35:45 #43 №141876 
>>141867
Представить что такое полигон - гугли "карта высот".
Представить что такое 3Д фигура - нарисуй куб.
Понять - гугли "постоение моделей из треугольников."
Аноним 27/11/14 Чтв 12:43:34 #44 №141878 
>>141858
А какое значение З-буфера ты запишешь в пиксель с полутоном?
Аноним 27/11/14 Чтв 21:09:21 #45 №141995 
14171117616660.png
Сап, gl-ушаки, как пользовать долбаный индексированый VBO?
Есть одна obj модель из которой я вытаскиваю всякие потроха в виде:
vector<short> v = {v1.x, v1.y, v1.z, v2.x ... }
vector<short> n = {n1.x, n1.y, n1.z, n2.x ... }
vector<unsigned short> t = {t1.u, t1.v, t2.y ... }
И индексы:
vector<unsigned short> e = {V1, N1, T1, V2, N2, T2 ... }

Рисую так:
[CODE]
glEnableVertexAttribArray(0);
glBindBuffer(GL_ARRAY_BUFFER, mdl->VertexBuffer());
glVertexAttribPointer(0, 3, GL_SHORT, GL_TRUE, 0, nullptr);

glEnableVertexAttribArray(1);
glBindBuffer(GL_ARRAY_BUFFER, mdl->UVBuffer());
glVertexAttribPointer(1, 2, GL_UNSIGNED_SHORT, GL_TRUE, 0, nullptr);

glEnableVertexAttribArray(2);
glBindBuffer(GL_ARRAY_BUFFER, mdl->NormalBuffer());
glVertexAttribPointer(2, 3, GL_SHORT, GL_TRUE, 0, nullptr);

glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, mdl->ElementBuffer());
glDrawElements(GL_TRIANGLES, mdl->ElementsSize(), GL_UNSIGNED_SHORT, nullptr);
[/CODE]

И получаю пикрелейтед. Что делаю не так?
Аноним 27/11/14 Чтв 21:13:35 #46 №141998 
>>141995
И буферы генерирую так:
[CODE]
glGenBuffers(1, &_vertexBuffer);
glBindBuffer(GL_ARRAY_BUFFER, _vertexBuffer);
glBufferData(GL_ARRAY_BUFFER, sizeof(short) _vertexes.size(), &_vertexes[0], GL_STATIC_DRAW);

glGenBuffers(1, &_uvBuffer);
glBindBuffer(GL_ARRAY_BUFFER, _uvBuffer);
glBufferData(GL_ARRAY_BUFFER, sizeof(unsigned short)
_uvs.size(), &_uvs[0], GL_STATIC_DRAW);

glGenBuffers(1, &_normalBuffer);
glBindBuffer(GL_ARRAY_BUFFER, _normalBuffer);
glBufferData(GL_ARRAY_BUFFER, sizeof(short) _normals.size(), &_normals[0], GL_STATIC_DRAW);

glGenBuffers(1, &_elementBuffer);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, _elementBuffer);
glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(unsigned short)
_elements.size(), &_elements[0], GL_STATIC_DRAW);
[/CODE]
Аноним 27/11/14 Чтв 21:24:06 #47 №142003 
>>141998
struct vertex
{
float[3] v;
float[3] n;
float[2] t;
}
....
glBufferData(GL_ARRAY_BUFFER, sizeof(vertex) _vertexes.size(), &_vertexes[0], GL_STATIC_DRAW);
Аноним 27/11/14 Чтв 21:26:18 #48 №142004 
>>141998
or
struct point
{
float[3] v;
}
struct normal
{
float[3] v;
}
struct uv
{
float[2] v;
}
....
glBufferData(GL_ARRAY_BUFFER, sizeof(point) _vertexes.size(), &_vertexes[0], GL_STATIC_DRAW);
...
glBufferData(GL_ARRAY_BUFFER, sizeof(normal) _normals.size(), &_normals[0], GL_STATIC_DRAW);
Аноним 27/11/14 Чтв 21:53:19 #49 №142006 
>>142003>>142004
Не до конца понимаю чем оно отличается от того что у меня.
В https://www.opengl.org/wiki/Vertex_Specification_Best_Practices#Formatting_VBO_Data
Написано, что что индексы можно представлять в разных видах (VVVV) (NNNN) (CCCC), (VVVVNNNNCCCC) или (VNCVNCVNCVNC). Как передать openGL какого формата данные я в него заливаю?
Аноним 27/11/14 Чтв 22:17:49 #50 №142008 
>>142006
vector<unsigned short> e = {V1, N1, T1, V2, N2, T2 ... }
That's a bullshit.
vector<unsigned short> e = {e1,e2,e3,.... }
Аноним 27/11/14 Чтв 22:18:41 #51 №142010 
>>142008
http://www.opengl-tutorial.org/intermediate-tutorials/tutorial-9-vbo-indexing/
Аноним 27/11/14 Чтв 22:24:10 #52 №142012 
>>142008
Кжц, это прав.
Индекс это всего одно число.
Вершина (v[e], n[e], t[e])
Аноним 27/11/14 Чтв 23:51:53 #53 №142023 
http://simonschreibt.de/gat/renderhell/
Вот тут годно и наглядно поясняется принцип рендеринга.
Думаю стоит добавить в шапку.
Аноним 28/11/14 Птн 00:04:30 #54 №142024 
>>142023
Да, годнота.
Аноним 28/11/14 Птн 00:46:11 #55 №142028 
>>142023
Креативщик ёбаный.
sageАноним 28/11/14 Птн 01:09:11 #56 №142029 
>>142028
Чего-то не нравится?
Аноним 28/11/14 Птн 05:28:29 #57 №142040 
Ананасы, как сделать камеру при помощи glm?
http://opengl-tutorial.blogspot.ru/p/6.html
Пытался вот по этому уроку делать. Попробовал сделать без движения, просто обзор мышкой. Вышла хуита даже не похожая на камеру.
Начинать изучение гла я начинал вот по этим урокам:
https://code.google.com/p/gl33lessons/wiki/Lesson04
И вот дошёл до 4 и там как раз камера, но используется своя мат библиотека и соответственно функции немного различаются. Например поворот матрицы.
Аноним 28/11/14 Птн 10:57:28 #58 №142062 
Ребяты, хочу пилить двумерный движок, в шапке не нашел ни одной статьи и по теме. Прочел пару книжек про ОпенГЛ, но ничего там блядь, про написание графических движков нет.

Знаю про вертексы, знаю про текстуры. Разжился знаниями по ВБО. Хочу собрать их в хорошую, но не шибко сложную архитектуру.

Пробовал читать исходники, но они часто бывают наполнены магическими числами, которые ничего не объясняют.

Хочется какую-нибудь статейку хотя бы с разбором внутреннего содержимого двигла, так чтобы хотя бы с куском теории о том как и зачем все это было написано.
Аноним 28/11/14 Птн 12:20:23 #59 №142075 
>>142062
всё уже придумано до тебя
Аноним 28/11/14 Птн 12:31:56 #60 №142076 
>>142075
Ну началось. Ясен хуй, что все придумано до меня, но я хочу знать, что же там блядь, придумано. Я хочу разбираться в том, что там внутри, как оно работает и почему оно так работает.

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

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

Как же надоели эти кукарекания.
Аноним 28/11/14 Птн 12:40:33 #61 №142077 
>>142076
Почитай исходники опен-сорцного движка.
Аноним 28/11/14 Птн 12:43:58 #62 №142078 
>>142076
В шапке же ссылки.

вот книжка
http://kickass.so/game-engine-architecture-second-edition-2014-t9574312.html

вот сайт не из шапки
http://gameprogrammingpatterns.com/

все же написано, глаза разуть лень. гугл есть. или ты думаешь тебе первому в истории надо разобраться как же движок работает.
Аноним 28/11/14 Птн 12:53:37 #63 №142080 
>>142076
Так ты используешь физический движок юнити для арканоида?!
Аноним 28/11/14 Птн 13:03:09 #64 №142082 
>>142080
какая пизда только тебя, блядь, выродила, такого тупого
Аноним 28/11/14 Птн 13:09:43 #65 №142084 
>>142078
Не лень. Я прошелся по ссылкам.

Название "Game Engine Architecture" мало говорит о том, что речь пойдет именно о разработке графического движка.

Не говоря уже о "Game Programming Patterns" ведь паттерны в играх встречаются тоже разные.

Но как бы там ни было, спасибо.
Аноним 28/11/14 Птн 13:56:11 #66 №142086 
>>142082
>сказал долбоебик после своего истеричного нелогичного высера про арканоид
Аноним 28/11/14 Птн 16:12:49 #67 №142091 
Снова выхожу на связь со своими ВБО >>141995-кун. Пересмотрел тутор с opengl-tutorial.org и приуныл. Если я правильно понял, индексируются только одинаковые комплексы атрибутов вершин [координаты, нормаль, текстурные координаты]. Получается, что если даже если на каждую вершину натягивается только одна текстурная координата, из-за нормалей (которые одинаковы для треугольников, а не вершин) эти комплексы будут разные. После индексации мы получим массивы проиндексированных атрибутов, которые по размеру равны неиндексированным. Плюс перерасход памяти на массив индексов.
Может можно как-нибудь привязать атрибуты раздельно?
ARB_vertex_attrib_binding вроде только с opengl 4.2, а моя говнокарта может только в 3.3.
Аноним 28/11/14 Птн 16:59:24 #68 №142096 
>>142091
Ты нихуя не понял, читай еще.
Я тебе уже пояснил и с кубиком и хуюбиком и тыкнул в то, что у тебя структуры ВБО - говно. Короче, пиздуй читать еще.
Аноним 28/11/14 Птн 17:01:27 #69 №142097 
>>142040
>Например поворот матрицы.
Хм.. вектора же.

Есть вектор, который нужно вращать в системе координат камеры пропорционально dx и dy курсора мышки. Вращать можно последовательно вокруг "верха"(UpVec) на dx, затем "бока" (StrafeVec) на dy.
После того как повернутый вектор найден нужно заново
расчитать матрицу вида mLookAt(куда).
И еще есть морока с определением нового базиса камеры. Камера может "завалится", для избегания этого я всегда беру как ось верха "Y+" вне зависимоти от реального верха как cross(X, Z).
Аноним 28/11/14 Птн 17:11:10 #70 №142098 
>>142097
Еще забыл добавить, во второй статье рекомедуют на колесо повесить изменение fov'а для приближения без измения позиции. Это требует каждый кадр пересчета матрицы прекции(не как что-то плохоe).
Но имхо не очень удобно, у меня по колесу изменение позиции наблюдения вдоль вектора "вперед", т.е. камера приближаться к центру вида.
Аноним 28/11/14 Птн 17:17:22 #71 №142099 
>>142097
Из меня обеснялка никакая.
>Есть вектор
Это вектор вперед в системе координат камеры или normalize(DirOnTarget).
Аноним 28/11/14 Птн 19:30:21 #72 №142110 
14171922214560.png
>>142096
>Ты нихуя не понял
Иначе бы не спрашивал.
>читай еще.
Пять раз перечитал, не понимаю.
Вот результат индексации из того примера с кубом, вершин стало использоваться меньше, но почему их осталось 28, а не 8?
Аноним 28/11/14 Птн 20:04:15 #73 №142113 
>>142110
Потому что при индексировании считается уникальность по всем атрибутам.
v(p1, n1, t1) != v(p1, n1, t2) - в индексе такие вершины будут считаться разными.

Для куба хватает 8 позиций которые образуют 12 треугольников или 36 вершин. Внимание вопрос: сколько для куба надо различных нормалей и текстурных координат?

Допустим нормалей тоже 6. Это нормали к грани, а не к вершине.
Тогда одна грань куба будет:
v(р1, n1) v(р2, n1) (р3, n1) - первый треугольник
v(р3, n1) v(р2, n1) (р4, n1) - второй треугольник
Занимает 4 вершины в индексе, итого 24 вершины для куба.

Теперь если добавить текстурные координаты у тебя вылезет еще 4 уникальных вершины. Хз почему, зависит от степени ебанутости экспортера и артиста который делал развертку.
Аноним 28/11/14 Птн 20:15:34 #74 №142115 
>>142113
Вот именно это меня и напрягает, на нормальных моделях экономия при индексации почти никакая, какой толк тогда, если можно пилить VAO и не париться? Или есть другие подходы к этому вопросу?
Аноним 28/11/14 Птн 20:28:15 #75 №142116 
>>142115
Да можно на простых моделях типа куба особо нет разницы рисовать в лоб 36 вершин или 24 через индекс. Но попрошу заметить, что ультра хардкор сжатие это рисование куба всего за 8 вершин вида v(pN, nN, tN). - сглажениые нормали(четкие грани редко когда нужны) и впритык заполненое текстурное пространство(на это влияет кол-во швов у модели, чем меньше тем меньше дублей вершин по текстурам).

>на нормальных моделях экономия при индексации почти никакая
Наоборот максимальная. У твоего сферического примера четкие грани и я нащитал(могу ошибисться) 14 швов. УГ кароч.
Аноним 28/11/14 Птн 20:45:23 #76 №142117 
>>142116
Ок, теперь все ясно, спасибо!
Аноним 28/11/14 Птн 20:53:54 #77 №142118 
14171972341820.jpg
>>142117
Пжлс.
Хотел еще сказать - не заморачивайся байтоеблей и рисуй все через индекс. Индекс ебут 3д-редакторы и руками строить его не нужно, памяти у видеокарт от 1 гига и дай б-г если 10% ее заполнено сетками и шейдерами, а все остальное тонет в full-hd текстурах. Бери проще!
Аноним 30/11/14 Вск 15:11:54 #78 №142283 
14173495143390.png
Хорошую картинку откопал.
Какой-то гуру освещения рисовал.
Аноним 30/11/14 Вск 23:30:18 #79 №142324 
>>142283
Больше таких картинок.
Аноним 04/12/14 Чтв 01:59:01 #80 №142519 
Зимний бамп.
Аноним 14/12/14 Вск 10:00:17 #81 №143496 
Спижжено с прикрепленого.
http://tfpsly.free.fr/bookmarks.html
Аноним 14/12/14 Вск 10:52:25 #82 №143501 
>>142023
Кончил с анимаций.
Аноним 15/12/14 Пнд 22:08:44 #83 №143634 
>>142023
Запиливается перевод
http://habrahabr.ru/post/245713/
Следите
sageАноним 16/12/14 Втр 13:39:25 #84 №143660 
>>143634
>2014
>перевод с английского
>бутылочное горлышко
Хабрадебилы невер чейнжс
Аноним 17/12/14 Срд 09:52:30 #85 №143766 
Поцоны, объясните мипмапы.
Не совсем понимаю что с ними делать. Сейчас, когда изучаю, рисую простые кубики и понятное дело можно с мип уровнями не возиться. Но надо будущее надо учесть.
Вот есть функция glGenerateMipmap, мне её нужно применять, наверное, не для всех текстур например к текстуре оружия нет, он и так постоянно рядом с near plane.
Я так понимаю драйвер сам будет выбирать какой мип уровень использовать?
Аноним 17/12/14 Срд 10:36:19 #86 №143767 
>>143660
Такой умный - укажи на ошибку переводчикам. Ой, погодите-ка! Ты местный школьник-циник, ты не опустишься до помощи другим.
Аноним 17/12/14 Срд 10:50:22 #87 №143769 
>>143766
> драйвер сам будет выбирать
Да.
>glGenerateMipmap, мне её нужно применять, наверное, не для всех текстур
И да и нет. Если оружие под углом к плоскости экрана - то мипы нужны.
Аноним 17/12/14 Срд 12:12:44 #88 №143776 
>>143769
А где про них ещё почитать?
Как генерировать? Сколько уровней задавать для текстуры? Удаление их из памяти?
Ну в общем пока вот такие вопросы.
Аноним 18/12/14 Чтв 01:20:06 #89 №143877 
>>143776
Шапку для кого писали?
Мипы генерятся автоматически.
sageАноним 18/12/14 Чтв 05:34:53 #90 №143880 
>>143766
Если у тебя в работе планируется "использовать" текстуру на разных от камеры расстояниях, то для нее мипмапы нужны.
Обычно мипмапы генерируют при сохранении текстур, типа DXT.
Драйвер по умолчанию сам выбирает, но можно и самому указывать.
ПОИСК КНИГИ Аноним 18/12/14 Чтв 06:02:01 #91 №143881 
Привет. Есть какая-то русскоязычная книга по OpenGL 3.3+(чтобы обязательно про программирование шейдеров было)? Я могу читать какие-то статьи на английском, но это происходит очень долго. Поэтому хочу почитать русскую книгу. Лучше бы это был перевод, но русский автор тоже пойдёт.
Буду рад, если что-то подскажете.
Спасибо.
sageАноним 19/12/14 Птн 07:06:28 #92 №143955 
>>143881
ОП пост для кого, сука тупая?
Аноним 21/12/14 Вск 23:21:15 #93 №144148 
Посоны, поясните.

Раньше делали отрисовку в glBegin/glEnd. Потом через буфер (VBO, VAO - всё такое).

gluSphere - какой вариант использует? Если первый - какой тогда вариант есть отрисовки через vertex buffer, кроме как самому генерить вершины(т.е. есть ли стандартые функции)?
Аноним 22/12/14 Пнд 00:09:30 #94 №144153 
>>144148
>>143955
Аноним 24/12/14 Срд 01:25:49 #95 №144282 
>>143955
Ну и где там, блять, книги на русском?
sageАноним 24/12/14 Срд 01:38:40 #96 №144283 
>>144282
Боресков, блять.
Аноним 24/12/14 Срд 09:40:25 #97 №144299 
>>144282
http://ogltutor.netau.net/index.html
сука слепая.
Аноним 25/12/14 Чтв 08:41:47 #98 №144361 
14194861076130.png
14194861076141.png
Как запилить такое преобразование на чистом GLSL?
Аноним 25/12/14 Чтв 14:02:15 #99 №144397 
>>144361
Нихуя нипонел - какое такое?

Еcли нужно преобразовать первый пик во второй, то нужно сделать дополнительную одномерную текстуру маски по Х c со значением (начало затенения по Y). Это можно сделать через свертку, отдельным проходом.

Затем уже делать чистый проход типа:
if (TexCoord.v - Tex1D(TexCoord.u) > 0)
FragColor = Белый;
else
FragColor = Чорный;

мимо диван
Аноним 25/12/14 Чтв 18:24:24 #100 №144411 
>>144361
Только постпроцесс как тут описано >>144397
Аноним 25/12/14 Чтв 19:00:33 #101 №144415 
14195232339820.gif
>>144361
О, я нашол что мне товй пик напоминал.

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

Строится так:
Оределяется шаг в градусах как (TexResolution / 2pi)
Трасируется луч(начало - позиция ИС, с шагом угла)
Ищется пересечение с 2d геометрией.
Растояние заносится в тектуру как Tex[CurrentAngle] = Distance(или MaxLightDistance, если нет пересечения ни счем).

Потом, при отрисовке геометрии, растояние из текстуры сравнивается с растоянием текущего пикселя до ИС по заданому углу - елси больше то пиксель в тени, иначе он на свету.
Аноним 25/12/14 Чтв 20:25:38 #102 №144417 
>>144397
>>144411
>>144415
Ну значит будем так делать. Вот преобразования в и из полярных координат. Я всё правильно сделал?

void to(in vec2 uv, out vec2 cart) {
float theta = uv.x 2.0 PI;
float r = uv.y;
cart = vec2(-r sin(theta), -r cos(theta));
cart = (cart/2.0) + 0.5;
}

void from(in vec2 cart, out vec2 polar) {
vec2 p = ((cart-0.5)2.0);
float r = length(p);
float theta = atan(p.y, p.x);
polar = vec2(-theta, r);
polar.x = (polar.x-PI/2.0)/(2.0
PI);
if(polar.x < 0.0) polar.x+= 1.0;
}
Аноним 25/12/14 Чтв 21:53:13 #103 №144423 
14195335937430.jpg
>>144417
Взял, да передрал посмотрел.
https://github.com/mattdesl/lwjgl-basics/wiki/2D-Pixel-Perfect-Shadows
Аноним 25/12/14 Чтв 22:24:23 #104 №144426 
>>144423
Я именно это и курю. Только мне ещё надо разобраться с самими шейдерами. Надо бы прочитать весь этот гайд от начала. Пользы больше будет.
sageАноним 26/12/14 Птн 02:59:46 #105 №144437 
>>144423
Ниблохо. Осталось понять теорию о 1Д радиальном луче Ведь можно просто топ-даун сканлайном пройтись.
Аноним 26/12/14 Птн 03:05:00 #106 №144438 
>>144437
Сажа прилипла.
Аноним 26/12/14 Птн 03:32:54 #107 №144439 
>>144426
Вот тут ещё по 2д теням.
http://habrahabr.ru/post/204782/
Аноним 27/12/14 Суб 10:55:21 #108 №144540 
А правда, что в 2015 году выйдет новый API?
Если сейчас начну учить, не придется все заново переучивать потом?
Аноним 27/12/14 Суб 11:14:31 #109 №144543 
>>144540
Учится пайплайн и технологии а не спецификация.
Да, планируется, на основе Мантл
Аноним 27/12/14 Суб 20:09:35 #110 №144588 
>>144543
Ну тогда я наверное годик подрочу СДЛ, потом видно будет.
Аноним 28/12/14 Вск 07:51:58 #111 №144616 
>>144588
>Ну тогда я наверное годик подрочу СДЛ, а завтра меня собьет автобус.
Аноним 28/12/14 Вск 15:39:54 #112 №144643 
Пасаны, сел я тут шейдера осиливать, а там GLSL.

В общем, подскажите, как запилить инвертирование цветов из фоновой текстуры.

Допустим, если на фоне чёрный цвет, то мне нужно окрасить свою текстуру в белый.
Аноним 28/12/14 Вск 16:14:03 #113 №144645 
>>144643
Ну епта https://www.shadertoy.com/view/ltX3RM
Аноним 28/12/14 Вск 18:08:09 #114 №144652 
14197792900410.png
>>144645
Не-не-не, ты не понял.
Вот смотри, есть рандомная фоновая картинка. С цветом, и прочим. Например, горелый дарт вейдер.
Есть текстура с отрендеренным туда текстом. Прозрачный фон, чёрный текст.

Что делает шейдер:
1) Берёт пиксель из дарта вейдера
2) Инвертирует ему цвет
3) Присваивает этот цвет пикселю, который находится уже в текстуре с текстом.

Таким образом, текст должен быть виден на любом фоне и поебать на цвет фона.
Аноним 28/12/14 Вск 18:14:42 #115 №144653 
>>144645
Не переходите на главную, если у вас Firefox - виснет.
Аноним 28/12/14 Вск 18:31:01 #116 №144656 
>>144652
(как это сделать?)
Аноним 29/12/14 Пнд 01:07:34 #117 №144680 
>>144652
Че ты несешь, поехавший? Тебе дали шейдер, рендери с ним в текстуру все, что хочешь.
Аноним 29/12/14 Пнд 08:11:31 #118 №144685 
14198298916550.jpg
>>144652
Ну бля
https://www.shadertoy.com/view/llX3zM
На шейдер той нельзя запилить свою пикчу, но я подобрал шахматную доску и сделал ее белый прозрачным, типа чёрные кубики получились.
Аноним 29/12/14 Пнд 12:24:37 #119 №144695 
>>144685
Пикча полностью описывает мою реакцию на этот сайт >https://www.shadertoy.com/
Аноним 29/12/14 Пнд 12:29:00 #120 №144697 
>>144695
Хотя как тулзень - штука годная.
Но отсутствие скрола и автопроигрывание с открытия - это пиздец.
Аноним 04/01/15 Вск 12:03:47 #121 №145074 
Аноны, а что делать надо? Хочу игру сделать, а не знаю как.
Аноним 04/01/15 Вск 13:25:30 #122 №145079 
>>145074
1) Программа стартует.
2) Загружает необходимые данные для уровня, например.
3) Запускается главный цикл.
4) Считывает данные с клавы/мыши.
5) Расчёт игровой логики/мира.
6) Рендеринг
7) Goto 4
Аноним 05/01/15 Пнд 13:49:01 #123 №145182 
Подскажите саму концепцию разработки с опенгл. Я вот заметил что с его помощью можно обрабатывать столкновения объектов. Но стоит ли так делать? Ресурсоёмко ли это?
Аноним 06/01/15 Втр 12:49:23 #124 №145321 
>>145182
>заметил что с его помощью можно обрабатывать столкновения объектов
>заметил
>обрабатывать столкновения объектов
Где?
Аноним 07/01/15 Срд 15:37:37 #125 №145564 
14206342570440.png
Сап ананасы.
У меня вопрос.
Изучаю освещение по уроку
https://code.google.com/p/gl33lessons/wiki/Lesson04
И не могу понять, почему на теневой стороне тора есть свет?
Код шейдеров один и тот же.
Аноним 07/01/15 Срд 16:07:17 #126 №145569 
>>145564
ИМХО это спекуляр вылез с обратной стороны. Где-то минус потерял или что-то такое.
[погнали!] Аноним 07/01/15 Срд 16:10:23 #127 №145570 
>>145564
либо кросспродакт не в том порядке, либо минус у дота потерял
Аноним 07/01/15 Срд 18:59:31 #128 №145587 
>>145570
If на знак результата поставь.
Аноним 08/01/15 Чтв 16:21:55 #129 №145732 
>>145569
> это спекуляр вылез с обратной стороны
Да, это был он. Я убрал передачу его в шейдер и всё ок заработало, но, понятное дело, это не решение проблемы.
>>145570
>либо минус у дота потерял
Зыс.
Я использую GLM, а в тех уроках юзается самописная либо.
Так вот, я шейдере ( который у урока, а не мой ) поставил у дота поставил минус и стало также как и у меня!
Ну и я, соответственно, поставил у себя минус и у меня эта проблема пропала.
Вот эта строка:
https://code.google.com/p/gl33lessons/source/browse/tags/lesson04/data/lesson.fs#61

Если данные входные одни и те же, даже шейдеры ( ну почти ) идентичны, то думаю проблема в математической либе.
Это ещё и подтверждается тем, что начальные координаты камеры тоже идентичны, однако моя камера стартует где-то в жопе сцены, а в уроке всё норм!
Аноним 08/01/15 Чтв 17:29:09 #130 №145745 
>>145732
>однако моя камера стартует где-то в жопе сцены
Ты их каждые фрейм передаешь в шейдер?
Матрицы пересчитываешь?
Аноним 08/01/15 Чтв 17:38:25 #131 №145747 
>>145745
> Ты их каждые фрейм передаешь в шейдер?
Да, а как ещё?
> Матрицы пересчитываешь?
Всмысле?
Аноним 08/01/15 Чтв 19:19:51 #132 №145762 
>>145747
>Матрицы пересчитываешь
При каждом изменении их надо пересчитывать.
В шапке в одном из туториалов пояснено за класс камеры.
Аноним 08/01/15 Чтв 20:16:05 #133 №145773 
>>145762
Ну дак это я знаю.
Перед отправкой их в шейдер view на projection умножаю.
Передаю матрицу модели и матрицу нормалей этой модели ( это для освещения ).
Ещё эти пляски с освещением не нравятся:
> Стоит отметить, что при использовании FFP OpenGL освещение рассчитывалось не в мировой системе координат, а в видовой. На мой взгляд это не очень удобно, т.к. видовая система координат связана с камерой, а источники освещения удобно задавать в мировой системе координат и именно там и производить весь расчет.
Аноним 09/01/15 Птн 05:43:54 #134 №145833 
>>145773
Ты можешь считать в любой системе в какой нравится.
Но в общем освещение считают во вью спейсе, а перевести из мира в вью спейсе - это совсем не проблема.
FFP уже лет 10 используется. ВЫкинь нахуй туториал.
Аноним 10/01/15 Суб 15:50:59 #135 №146230 
>>145833
> не используется
Аноним 11/01/15 Вск 02:11:19 #136 №146422 
Анон, вопрос насчет процесса разработки, гугление на русском и английском не даёт результатов.

Начал изучать OpenGL 3.3 по туториалам с http://opengl-tutorial.org
Всё нормально компилируется, но при отладке даже самой первой программы в Visual Studio программа не работает как надо, потому что использует интегрированное видео вместо моей GT630M на ноуте. Как заставить программу использовать дискретное видео по-умолчанию? Неужели для каждого туториала придётся в панели управления видеокарты устанавливать для каждой программы использование GPU вместо CPU?
Аноним 11/01/15 Вск 02:14:55 #137 №146423 
>>146422
Забыл упомянуть, драйвера на ПЕЧ стоят последние. Может где нужно включить опцию автоматического использования карточки при вызовах процедур OpenGL 3.X?
Аноним 11/01/15 Вск 02:18:05 #138 №146424 
>>146422
>>146423
А, всё, надо было сразу полезть в панель управления. Выставил GPU предпочтительным графическим процессором, всё заработало как надо.
Аноним 11/01/15 Вск 03:17:01 #139 №146430 
>>146424
Чтобы работало всегда - запускай саму студию с поддержкой дискретки. дебагер как чайлд запустится тоже с интегрированой.
Аноним 11/01/15 Вск 03:28:41 #140 №146431 
>>146430
> дебагер как чайлд запустится тоже с интегрированой
С дискретной, ты наверно имел в виду?
Да, я как раз подумал об этом, потому что при автовыборе дискретки все кому не лень будут использовать её. Однако опять же при запуске скомпилированного приложения не из студии придётся делать лишние движения для запуска приложения с поддержкой GPU. Думаю, на время разработки можно оставить автовыбор GPU.
Аноним 14/01/15 Срд 05:21:42 #141 №147336 
>>146431
Ну, да.
Аноним 17/01/15 Суб 00:09:23 #142 №148028 
+ доки
http://www.cescg.org/CESCG-2010/papers/PragueCVUT-Jamriska-Ondrej.pdf
http://www.crytek.com/download/Light_Propagation_Volumes.pdf
http://www.vis.uni-stuttgart.de/~dachsbcn/download/lpv.pdf
Аноним 18/01/15 Вск 07:15:49 #143 №148298 
Начинается интересная серия статей:

Краткий курс компьютерной графики: пишем упрощённый OpenGL своими руками
http://habrahabr.ru/post/248153/
Аноним 18/01/15 Вск 11:53:21 #144 №148310 
>>148298
>Начинается
>из песочницы
Мечтай. Теперь у него есть инвайт - одной статьёй всё и ограничится.
Аноним 18/01/15 Вск 12:25:47 #145 №148318 
>>148298
Нахуй ты это говно с хабра тащишь?
Аноним 18/01/15 Вск 13:06:49 #146 №148330 
>>148318
Чтобы тебя, тупого пидараса, бесить.
Аноним 18/01/15 Вск 13:19:17 #147 №148333 
>>148330
От тебя один негатив.
Аноним 18/01/15 Вск 14:16:19 #148 №148345 
>>148298
http://joshbeam.com/articles/simple_line_drawing/
http://groups.csail.mit.edu/graphics/classes/6.837/F02/lectures/6.837-7_Line.pdf
Уже все давно написано, идите нахуй с "преподами" для школьников c их переводом статей на руSSкий.
Аноним 19/01/15 Пнд 19:14:33 #149 №148552 
Посоветуйте пожалуйста что-то почитать по теме.
В общем: Использую ogl3.3. Научился генерировать ландшафт, научился настраивать текстуры, двигать камерой, масштабировать, вот это всё. Теперь я хочу научиться, например, создавать шар и двигать его по ландшафту. С чего мне начать? Как происходит взаимодействие шара с ландшафтом (Имеется карта вершин).
Аноним 20/01/15 Втр 05:53:18 #150 №148659 
>>148552
Ты про коллизии? Это уже не к огл. Не знаю, почитай про буллет какой-нибудь.
Аноним 20/01/15 Втр 16:33:08 #151 №148724 
>>141146
Есть ли игровой фреймворк для OpenGl. Именно заточенный под графику, а не Qt.
Аноним 20/01/15 Втр 16:48:15 #152 №148728 
14217616955340.png
>>148724
Самое главное то забыл для js. То есть чтобы я мог в браузере opengl вертеть, чтобы делать вещи типа прилеплейтеда без всяких плагинов, но и без низкоуровневых матриц
http://play.ironbane.com/
Аноним 20/01/15 Втр 17:40:43 #153 №148746 
>>148728
three.js
Аноним 21/01/15 Срд 12:15:03 #154 №148883 
14218317033300.jpg
Аноны, генерирую атлас с символами с помощью freetype, пихаю, соответственно в текстуру формата GL_RED. Какие BlendFunc выставлять, чтобы с прозрачностью выводилось? И самое главное непонятно, как определять какой у меня формат, чтобы менять блендинг. И вообще поясните за смешивание, весь гугол прочитал, не могу понять, что и как.
Аноним 21/01/15 Срд 14:53:52 #155 №148904 
>>148883
>BlendFunc
Пиздуй нахуй со своим Блендом, в шейдере обрезай по значению.
Или же делай правильный порядок вывода, чтобы бленд сработал, ато ты рисуешь сначала шрифт а потом остальное.
sageАноним 21/01/15 Срд 15:56:00 #156 №148919 
>>148883
if (color.r < 0.001) discard;
Аноним 21/01/15 Срд 16:45:57 #157 №148933 
>>148904
Да говорю же, не разобрался еще с ним. Если можно заменить шейдером, то заебись.
Аноним 21/01/15 Срд 17:57:39 #158 №148945 
>>148933
>заменить шейдером
Так ты еще и на легаси пишешь?
Да пойди ты нахуй, тут ОГЛ ниже 3.2 не обсуждается.
Аноним 22/01/15 Чтв 01:20:26 #159 №149065 
>>148945
Ты детектор чини, я ж говорю, блендинг не юзал ни разу, пишу на 3.3+, пытаюсь понять нахуя он нужен.
Аноним 22/01/15 Чтв 11:12:37 #160 №149100 
>>149065
Тогда что значит "заменить шейдером"?
Аноним 22/01/15 Чтв 13:07:57 #161 №149113 
>>149100
>Если тот же функционал можно перенести в шейдеры, а не ебаться с непонятной хуйней, то заебись.
Аноним 22/01/15 Чтв 16:24:16 #162 №149179 
>>149113
>тот же функционал
Какой "тот же", блять.
Блендинг состоит из двух частей, мать вашу:
Задать в коде програмы:
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

В шейдере:
>>148919
Аноним 22/01/15 Чтв 16:26:02 #163 №149181 
>>149179
+ в шейдере:

...
return vec4(1,0,0,color.r)
Аноним 22/01/15 Чтв 16:46:09 #164 №149185 
Ребята, я, наверное, уже тут всех заебал, но у меня так и не вышло нормально задать текстуры. В интернете примеры только со старым ogl и они там просто делают это функцией.
Расскажите кто-нибудь, как вы устанавливаете проективные текстуры? Или покажите код.
Какой-то анон посоветовал:
>Передавать в текстурные координаты нужно только вертексные координаты, умноженные на model матрицу.
но это похоже на неправду. Или я просто не понял. Или другой пайплайн.
Вот мой тред: https://2ch.hk/gd/res/148803.html
Я уже заебался. На стаковерфлоу постоянно кидают эту статью http://home.xyzw.us/~cass/qcoord/, но она нихуя не очевидная. Какие-то вертексы задают vec4 векторами.
Аноним 22/01/15 Чтв 16:54:12 #165 №149188 
>>149185
Сюда пришел.
Куб из туториала написал?
Аноним 22/01/15 Чтв 17:21:24 #166 №149198 
>>149188
Да, но там координаты заданы уже.
Аноним 22/01/15 Чтв 20:49:35 #167 №149262 
>>149185
Объясню популярно еще раз. Итак, для чистоты эксперимента ты будешь передавать в шейдер только координаты вершин. Текстурные координаты оставь в стороне, закомменть. В шейдере, до перемножения на всякие матрицы, ты присваиваешь текстурным координатам (которые vec2) два координаты из позиции вершины (поиграйся со значениями, xy, yz, xz, я хз какая у тебя там система отсчета). Потом ты накладываешь текстуру с помощью этих самых полученных координат и выкладываешь скрины.
Аноним 22/01/15 Чтв 20:50:37 #168 №149263 
>>149262
>>149185
И не забудь про
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
Аноним 22/01/15 Чтв 21:26:52 #169 №149277 
14219512120430.png
>>149262
>>149263
Идеально работает, если просто передаю position.xz . Пока оставлю так.
Спасибо.
Аноним 22/01/15 Чтв 21:41:51 #170 №149282 
14219521116500.png
14219521117411.png
>>149277
А нет, как-то странно просвечиваются некоторые части.
Вот на пике пример. Вот это странное пятно - это бугор, который на ландшафте там дальше находится. То-есть, видно его часть снизу-вверх.
По-хорошему, нужно сначала освещение сделать, а то хуево видно всё это.
Я может напишу еще как-нибудь.
Аноним 22/01/15 Чтв 21:55:52 #171 №149285 
>>149282
glEnable(GL_DEPTH_TEST);
Аноним 23/01/15 Птн 23:49:48 #172 №149493 
Сап, ГЛьщики.
Решил давеча сделать отражения в экранном пространстве, но столкнулся с тем, что трейсинг стреляет уж очень не точно - малейшее движение и пиксели на отражении скачут как кролики весной.
Есть у кого идея или статья какая, где описано решение?
Аноним 24/01/15 Суб 00:13:31 #173 №149497 
>>149493
В дум3 бфг посмотри.
Аноним 24/01/15 Суб 00:19:09 #174 №149500 
>>149497
Там нету рефлекшена.
Аноним 08/02/15 Вск 14:15:11 #175 №153133 
Сап, только начинаю изучать, стоит ли ебаться с Qt, чтобы кроссплатформенность, или как?
Аноним 08/02/15 Вск 16:04:17 #176 №153153 
Блин, ребятки, какая крутота http://youtu.be/rL8zDgTlXso, я аж прослезился! Может есть у кого-то статья, туториал, видеоурок, как сделать подобное? Нет, не хочу сделать тутор по такому, хочу кубики создавать.
Аноним 08/02/15 Вск 21:49:47 #177 №153220 
>>153133
>Qt
Да.

>>153153
http://codeflow.org/entries/2010/dec/09/minecraft-like-rendering-experiments-in-opengl-4/
Наслаждайся.
Аноним 08/02/15 Вск 21:54:05 #178 №153221 
>>153220
+http://webstaff.itn.liu.se/~stegu/TNM084-2011/
Тут курс с той видяшки.
Аноним 11/02/15 Срд 18:06:26 #179 №153779 
Пагни, подскажите алгоритмы детекции точных коллизий 3д моделек, не сферами.
Cпасибо.
Аноним 11/02/15 Срд 18:28:14 #180 №153785 
>>153779
http://lmgtfy.com/?q=3d+model+collision+detection+algorithm
Аноним 11/02/15 Срд 18:36:39 #181 №153788 
>>153785
>не сферами
Парашу вроде aabb по первым ссылкам в гугле я уже нашел без твоей язвительности.
Аноним 11/02/15 Срд 20:54:22 #182 №153813 
>>153788
>Парашу вроде aabb
>Парашу
>aabb
Может тебе еще и окттри с BVH параша?
Аноним 12/02/15 Чтв 00:59:19 #183 №153842 
Я охуел с вашей шапки. Ну-ка, ткнули меня носом в самый заебенный гайд по самому последнему глу! Быстрабля, пожалуйста
Аноним 12/02/15 Чтв 01:12:55 #184 №153843 
>>153842
porn.md
Аноним 12/02/15 Чтв 01:18:45 #185 №153844 
>>153843
Нормально ответить можешь? А то я нашел гайдики на 3.3, но они морально устарели, это не говоря о том, что у меня cmake отказывался что-то там конфигурировать (я нихуя не понел, гугел не помог)
Аноним 12/02/15 Чтв 01:29:41 #186 №153845 
>>153842
>Ну-ка, ткнули меня носом
Могу ткнуть в говно.
>меня cmake отказывался что-то там
и послать нахуй.
Аноним OP 12/02/15 Чтв 02:28:43 #187 №153851 
>>153842
Что тебе в тех туториалах не нравится? С 3.3 в пайплайне ничего принципиально не поменялось. Учи базу по этим, дальше уже расширениями и тесселяцией обмазывайся, если так надо.
Аноним 12/02/15 Чтв 03:25:42 #188 №153858 
>>141146
http://www.swiftless.com/tutorials/opengl4/1-opengl-window.html
Аноним 13/02/15 Птн 11:53:25 #189 №154045 
14238176058960.gif
Суп велосипедистам. Сам велосипедист.
Хочу поделиться с аноном своей маленькой находкой, которая возможно не всем очевидна.

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

Проблема №1. В винде стандартное окно (с рамкой и заголовком) и для полноэкранного режима (без ничего) - две большие разницы, поскольку нельзя сделать из одного другое после создания.
Решение: создавать два окна и переключаться между ними по команде (например в крузисе по wm_maximize для первого и wm_restore для второго, лoл).

Проблема №2. Для первых экспериментов ещё куда ни шло завязывать процедуру рендера на оконные сообщения типа wm_paint, wm_timer, но теперь это мягко говоря странно. Плюс создавать по контексту на каждое окно и потом расшаривать между ними объекты. Гемор наверняка тот ещё будет.
Решение: по наденным в инете рецептам видно, что вполне нормально использовать один контекст рендеринга по необходимости переключаясь между несколькими контекстами устройства (окнами). Тогда выносим весь код рендера в отдельный поток, и туда же можно код создания контекста - чтоб оконные потоки уже этим не занимались. Остается только вовремя подавать потоку рендера сообщения о смене контекста устройства и изменении размера окна.

Проблема №3. Первое окно работает, из второго сыплется ошибка 2000 - неправильный формат пикселя.
Преамбула: изучение OpenGL ещё во времена 1.1-1.2, привычка писать в одну харю одно окно, спагетти и т.д. Короче процедура создания контекста тогда состояла из установки формата пикселя в контексте устройства и создания контекста рендеринга, и была слеплена воедино, а ныне добавилось еще объявление реального контекста для третьей или более новой версии. Решение: отделяем установку формата пикселя из общей процедуры создания контекста в потоке и переносим ее в обработчик wm_create для каждой формы, а передача контекста устройства при смене окна уже работает.

Итог: рендер работает в собственном потоке независимо от окон (их можно теперь насоздавать пачками), ну и не забываем при закрытии окон сначала завершить поток рендера, освободить ресурсы и закрыть контекст.

Надеюсь кому-то поможет.
P.S.: gDebugger - сила.
Аноним 13/02/15 Птн 15:14:55 #190 №154068 
>>154045
Спасибо.
http://www.youtube.com/watch?v=Jhu-KNELQao&list=PL9HVvEQXdWVYtFIm-mNfBmUWxaoCDt97x
Аноним 13/02/15 Птн 16:16:15 #191 №154086 
>>154045
https://www.opengl.org/discussion_boards/showthread.php/170337-Fullscreen-Nehe-causes-teardown-and-rebuild?p=1198734#post1198734
2 окна NINUJEN.
Аноним 13/02/15 Птн 17:03:01 #192 №154090 
>>154086
>удалять окно и создавать новое
Вот это точно не нужно.
>SetWindowLong
У меня ещё ни разу не работало, не знаю, что я не так делал.
Аноним 13/02/15 Птн 19:39:25 #193 №154106 
>>154090
Udalenie okna ne vedet k invalidacii konteksta.
Prost sdelay eto pravilno.
Аноним 13/02/15 Птн 20:16:13 #194 №154110 
>>154045
>В винде стандартное окно (с рамкой и заголовком) и для полноэкранного режима (без ничего) - две большие разницы
Это враньё.
Аноним 17/02/15 Втр 07:21:53 #195 №154713 
http://www.phoronix.com/scan.php?page=news_item&px=Next-Gen-OpenGL-GDC15
Хуле я ещё не видел тут?
Аноним 17/02/15 Втр 15:20:14 #196 №154758 
14241756144930.png
>>154713
Аноним 18/02/15 Срд 07:27:05 #197 №154854 
Киньте уёбку гайды по OpenGL на русском, пожалуйста.
Я знаю инглиш на некотором левеле, но русский куда приятнее
Аноним 18/02/15 Срд 10:09:52 #198 №154862 
>>154854
В ОП посте ссылки на тьюториалы на русском, полуёбок.
Аноним 18/02/15 Срд 19:34:33 #199 №154938 
>>153220
Ребята, я конечно понимаю, что вопрос тупой, но вот в этой статье код написан на питоне, в чем его можно компильнуть? В статье, я так понял, он работает на Линуксе и начал туда особых Линукс онли ИДЕ, а для Вин64 какие есть аналоги?
Аноним 18/02/15 Срд 21:27:55 #200 №154954 
>>154938
> но вот в этой статье код написан на питоне, в чем его можно компильнуть?
Питон это интерпретируемые язык программирования.
Аноним 18/02/15 Срд 22:32:54 #201 №154964 
>>154954
Дело в том, что там библиотеки подключаемые, как ты их без питона интерпретируешь?
Аноним 19/02/15 Чтв 19:00:36 #202 №155051 
>>154938
http://intermediate-and-advanced-software-carpentry.readthedocs.org/en/latest/c++-wrapping.html
https://docs.python.org/2/extending/extending.html
Аноним 21/02/15 Суб 21:33:28 #203 №155356 
На русском по 3d и матану есть что-нибудь? Хочу книгу чтобы в руках держать и читать.
Аноним 21/02/15 Суб 23:11:55 #204 №155364 
>>155356
Боресков и Шикин "Компьютерная графика. Полигональные модели."
Аноним 22/02/15 Вск 01:44:40 #205 №155389 
Объясните пожалуйста, как нужно делать разные текстуры для разных объектов? Я имею ввиду, нужно передавать в шейдер несколько текстур и там как-то выбирать? Или можно как-то хитро назначить разные текстуры перед отрисовкой? Пытался найти в туториале каком-то, но задолбался разбираться в убогой архитектуре и какой-то виндоус-дрисне.
Подскажите пожалуйста.
Аноним 22/02/15 Вск 03:53:11 #206 №155401 
>>155389
Назначают текстуры. Примерно так
- Для каждого объекта
-- Для каждой части
--- Поставить текстуры
--- Нарисовать
Аноним 22/02/15 Вск 04:25:58 #207 №155403 
>>155401
Всмысле, в методе отрисовки меняют их много раз?
Аноним 22/02/15 Вск 04:53:12 #208 №155406 
>>155356
Купи читалку и выучи английский.

>>155403
>в методе отрисовки
Забиндил - нарисовал.
Если много текстур для одного объекта - гугли "мультитекстурирование".
Аноним 26/02/15 Чтв 00:10:24 #209 №156357 
Почоны, есть ли какая-нибудь книжка по OGL 4 на русском, которая охватывала бы самые простые и общие принципы, чтобы я мог сразу начать писать двигло без вкуривания деталей?
Алсо, пешу на кьютэ.
Аноним 26/02/15 Чтв 02:38:06 #210 №156375 
>>156357
>>153851
Аноним 26/02/15 Чтв 06:22:52 #211 №156395 
>>156357
>писать двигло без вкуривания деталей
Иди нахуй.
Аноним 26/02/15 Чтв 17:45:53 #212 №156506 
Поцоны, есть одна прога, в ней у меня вращается кубик. Почему-то при уменьшении размера окна кубик начинает вращаться быстрее. Это норма?
Аноним 26/02/15 Чтв 17:54:40 #213 №156508 
>>156506
И это gd
Аноним 26/02/15 Чтв 17:56:29 #214 №156510 
>>156508
В самом деле, что я делаю не так? Как зафиксировать вращение?
Аноним 26/02/15 Чтв 18:18:24 #215 №156514 
>>156506
Тайминги, сука! Ты проебался с таймингами в главном цикле!
Аноним 26/02/15 Чтв 20:21:18 #216 №156528 
14249712780770.jpg
>>156510
Подозреваю, что отрисовка вместе с изменением угла забита тупо в бесконечный цикл. Прибавляй к углу вместо простой константы константу умноженную на время с момента предыдущей итерации.
Псевдокод:
Перед циклом:
OldTime = GetTickCount
В цикле:
Time = GetTickCount
Angle = Time - OldTime * X
OldTime = Time

X подбирай изходя из необходимой скорости вращения, в зависимости от того, в градусах или в радианах углы используешь, и с учетом, что GetTickCount возвращает миллисекунды.
Аноним 26/02/15 Чтв 20:39:29 #217 №156536 
14249723696880.gif
А софтварным рендером никто не упарывается?
Аноним 26/02/15 Чтв 21:51:24 #218 №156547 
>>156536
Нет. Если есть время/студент - пиши, поймешь много. А так - читай теорию и доки.
Аноним 26/02/15 Чтв 22:06:18 #219 №156551 
14249775782100.png
>>156536
Упарывался раньше. Не треугольниками, конечно, ведь это бессмысленно. Софтрендер - это воксели, безграничная деталь и все такое. Тут раньше треды были, но постепенно кроме меня все забросили.
Аноним 26/02/15 Чтв 22:57:46 #220 №156560 
>>156514
>>156528
Ясно, спасибо.
Аноним 26/02/15 Чтв 23:07:32 #221 №156563 
>>156551
Я в /гд/ недавно, скажи, сам упарывал воксели или на БесконечноДетальный фапал?
Аноним 26/02/15 Чтв 23:23:00 #222 №156564 
>>156563
И то, и другое.
Аноним 27/02/15 Птн 01:12:13 #223 №156595 
>>156551
Жаба?
Аноним 27/02/15 Птн 11:45:27 #224 №156648 
>>156395
Задроту НЕПРИЯТНО.
Аноним 27/02/15 Птн 20:59:01 #225 №156737 
>>156648
Да не, он прав. Без вкуривания деталей - это тебе в юнити тред надо, иди туда и не отсвечивай больше тут.
Аноним 27/02/15 Птн 21:21:54 #226 №156745 
>>141146
http://www.nvidia.com/object/siggraph-2008-HBAO.html
HBAO.
Аноним 28/02/15 Суб 07:35:12 #227 №156784 
14250981121140.jpg
Анонасы, знаю что вопрос совсем говно, но уж извиняйте. Сидел 5 лет на с++, щас захотел новых анальных ощущений, хочу перекатиться в ОпенГЛ. И ВНЕЗАПНО огромное количество библиотек для одного и того же. Какую выбрать для нормального изучения? Чтобы и туторов было не 1.5 штуки, и не совсем старье.
Аноним 28/02/15 Суб 09:41:38 #228 №156793 
>>156784
>перекат из c++ в opengl
Уебывай из профессии.
Аноним 28/02/15 Суб 10:17:21 #229 №156796 
>>156793
А что не так то? Ну может не перекат, синтаксис тот же, но материал то новый.
Аноним 28/02/15 Суб 10:48:06 #230 №156800 
>>156784
Библиотека для чего тебе, блять?
ОП пост для кого составлен, хуила?
Аноним 28/02/15 Суб 13:36:49 #231 №156819 
>>156784
Двачую предыдущих, ты объясни, что хоть тебе надо.
Аноним 01/03/15 Вск 09:13:01 #232 №156926 
>>156800
>>156819
Так я ж говорю, для базового изучения. А то я нашел какие то GLUT, GLEW, и еще какие то. Так вот и вопрос, если они все одно и то же делают, то что выбрать то? Или они все разные а я в глаза ебусь?
Аноним 01/03/15 Вск 11:41:52 #233 №156944 
>>156926
Тебе нужен и GLUT, и GLEW. Почитай Orange Book.
Аноним 01/03/15 Вск 17:06:41 #234 №157002 
>>156944
>>156926
GLUT, FreeGLUT говно мамонта.
Бери GLFW, SDL2, SFML для создания контекста.
GLEW для подключения расширений чтобы ручками ничего не делать.
GLM для математики.
Хули тут читать-то?
Аноним 01/03/15 Вск 18:16:37 #235 №157017 
>>157002
Ну наконец-то. Спасибо. А то в шапке туториалов куча, а половина ниочем.
Аноним 01/03/15 Вск 19:01:10 #236 №157022 
>>157017
>а половина ниочем.
И какая же?
Аноним 01/03/15 Вск 19:06:36 #237 №157023 
>>157002
>для создания контекста.
Под Шиндовс еще так можно:
https://msdn.microsoft.com/en-us/library/windows/desktop/dd374379%28v=vs.85%29.aspx
Аноним 01/03/15 Вск 19:39:03 #238 №157025 
>>157022
А вот эта:
>>https://www.opengl.org/sdk/docs/man2/ - OpenGL 2.1
>>https://www.opengl.org/sdk/docs/man3/ - OpenGL 3.3
Старые доки впринципе не нужны, плюс туториалы по старым хуитам ненужны.
Аноним 01/03/15 Вск 20:10:07 #239 №157029 
>>157025
Ясно.
Аноним 02/03/15 Пнд 11:20:44 #240 №157093 
>>156926
GLFW + сырой OpenGL
Аноним 02/03/15 Пнд 21:10:37 #241 №157191 
>>157023
Ага, и придётся юзать огл2.
Охуенная история.
Аноним 02/03/15 Пнд 22:44:40 #242 №157218 
>>157191
Идиот.
Аноним 02/03/15 Пнд 22:47:11 #243 №157219 
>>157191
https://sites.google.com/site/opengltutorialsbyaks/introduction-to-opengl-3-2---tutorial-01
В догонку. И перестань уже кукарекать без знания матчасти.
Аноним 03/03/15 Втр 03:50:05 #244 №157271 
14253438050370.jpg
>>157219
> матчасти
> калоотстойник с winapi
Аноним 03/03/15 Втр 05:32:05 #245 №157276 
>>157271
красноглазый ублюдок, твое мнение никого не волнует, ползи обратно в свою парашу
Аноним 03/03/15 Втр 20:30:23 #246 №157450 
https://www.khronos.org/vulkan
https://www.khronos.org/assets/uploads/developers/library/overview/2015_vulkan_v1_Overview.pdf
Аноним 03/03/15 Втр 21:08:21 #247 №157459 
14254061014540.jpg
>>157450
http://vulkan-tutorial.com/
http://learnvulkan.com/
Ждём, братишки.
[погнали!] Аноним 03/03/15 Втр 22:19:49 #248 №157482 
>>157459
Ждем толпу неосиляторов. Ты это хотел сказать?
Аноним 03/03/15 Втр 22:26:53 #249 №157486 
>>157482
Драйвера уже накатил?
Аноним 03/03/15 Втр 23:14:51 #250 №157502 
>>157482
Сейчас куча врапперов появятся. Точно всякие юнити будет первыми, так что первые набигатели будет из юнититреда, а так же всякое школие.

В любом случае, скоро ОГЛ, каким мы его знали, исчезнет Как только выйдет железо под некст заточеное..
Аноним 03/03/15 Втр 23:46:27 #251 №157506 
>>157502
Железо уже давно есть. Главный вопрос конечно в том когда будут драйвера.
Аноним 04/03/15 Срд 00:37:58 #252 №157511 
>>157502
>скоро ОГЛ, каким мы его знали, исчезнет
Шо, опять?! Еще одного фокуса с исчезновением он может и не пережить. Как бы навеки не исчезнуть.
Аноним 04/03/15 Срд 01:18:02 #253 №157522 
>>157511
Явно это произойдёт не скоро.
Может несколько лет. Хуй знает, короче.
Аноним 04/03/15 Срд 14:42:56 #254 №157584 
Посоветуйте какую-нибудь либу для создания окошка, обработки инпута и по возможности аудио.
SDL не предлагать, он какой-то ебанутый, хз как его параллелить.
sageАноним 04/03/15 Срд 15:17:28 #255 №157600 
>>157584
SFML
Аноним 04/03/15 Срд 15:17:44 #256 №157601 
>>157600
приклеилась
Аноним 04/03/15 Срд 16:05:37 #257 №157604 
>>157584
Qt
Аноним 04/03/15 Срд 18:36:39 #258 №157630 
>>157584
А что за проблемы с SDL?
Аноним 04/03/15 Срд 21:30:00 #259 №157669 
>>157584
Его не надо параллелить. Он просто универсальная прослойка между игрой и железом, позволяющим забыть про тонкости устройства конкретной ОС.
Аноним 04/03/15 Срд 21:46:45 #260 №157673 
>>157584
>параллелить окошко
Ебанутый? Ебанутый.
Winapi, если спермолох, голые иксы, если линуксогосподин. GLFW если кроссплатформа-бог.
Аноним 04/03/15 Срд 21:49:57 #261 №157676 
>>157673
Не понимаю, зачем кому-то нужно что-то еще, когда есть GLFW.
>голые иксы
Значение знаешь?
Аноним 04/03/15 Срд 22:10:08 #262 №157681 
>>157676
>>157673
Qt более кросплатформа.
Аноним 04/03/15 Срд 22:15:19 #263 №157682 
>>157681
Кутэ это какой-то мамонт со своими строками и прочим ненужным хламом.
Аноним 05/03/15 Чтв 00:45:07 #264 №157713 
Нужно запилить программу которая отрисовывает трехмерный объект из файла obj оси координат и плоскость. Должна быть возможность вертеть сцену мышкой. Как трудно такое сделать?
Аноним 05/03/15 Чтв 00:48:53 #265 №157715 
>>157584
GLFW + OpenAL
Аноним 05/03/15 Чтв 01:40:28 #266 №157723 
>>157713
Часа 3. Но тебе мы рекомендуем пройти нахуй, тут лабу тебе делать никто не будет.
Аноним 05/03/15 Чтв 21:25:28 #267 №157874 
>>157681
Кут слишком тяжеловесное говно. 50 мегабайт для пустого окошка? Как-то дохуя. Нет, он хорош, тут не поспоришь. Но не для геймдева. Для энтерпрайза, для тяжелых гуёв. Но для геймдева - очень плохой вариант, ты фактически будешь использовать 5% функциионала, но заплатишь всю цену в виде огромного дистрибутива, недостатка скорости в критичных местах и долгой компиляции проекта.
>>157676
Иксы полезно покопать чисто в образовательных целях, когда хочется поближе понять систему, и кроссплатформа не нужна. Для кроссплатформы да, GLFW рулит, тут спору нет.
Аноним 05/03/15 Чтв 21:42:50 #268 №157879 
>>157874
Ну, есть еще старые добрые виджеты.
https://www.wxwidgets.org/
Аноним 05/03/15 Чтв 22:41:56 #269 №157909 
>>157723
Я и не просил писать лабу, я хотел узнать как много мне нужно знать чтобы сделать это и основываясь на этих знаниях поставить сроки. Проебусь конечно, как всегда
Аноним 05/03/15 Чтв 22:46:43 #270 №157910 
>>157909
Тебе нужно знать как загрузить модель, как ее перевести в ВБОи как этот ВБО нарисовать. Потом тебе нужен класс камеры.
Плюс нужен ВБО с осями и ВБО с плоскостью Аж 2 треугольника.
А, еще шейдеры, да.
Все.
Аноним 06/03/15 Птн 03:05:22 #271 №157965 
>>157910
Спасибо анон!11
Мог бы поблагодарить.
Аноним 06/03/15 Птн 11:09:17 #272 №158015 
Тебе нужен класс для загрузки модели, класс для перевода в в ВБО, и ВБО тоже в классе должен храниться, как этот ВБО нарисовать тоже должен класс делать. Потом тебе нужен класс камеры. И класс мышки. И класс клавиатуры.
Плюс нужен класс ВБО с классом осей и класс ВБО с классом плоскости. Аж 2 класса треугольников.
А, еще класс для шейдеров, да.
Все.

Время идёт, крестобляди не меняются.
Аноним 06/03/15 Птн 12:18:24 #273 №158037 
>>158015
Тащемта, ты описал жабу.
Аноним 06/03/15 Птн 13:53:21 #274 №158058 
>>158037
Тогда это был бы "xml для загрузки модели…" етц. У жаборабов выбора нет, да и не лезут они со своими классами куда попало. А вот крестобляди всегда всё начинают с классов. В жопу алгоритмы, в жопу проектирование, в жопу структуры данных - у нас будет класс для хранения вот этой хуйни и ещё класс для обработки вон той хуйни.
Повбiвав би.
Аноним 06/03/15 Птн 15:09:55 #275 №158073 
>>157910
Спасибо добрый человек. Отвечаю на сообщения раз в 2 дня
Аноним 06/03/15 Птн 16:05:44 #276 №158090 
>>158058
Хуевые крестобляди тебе попадались.
Аноним 06/03/15 Птн 17:32:24 #277 №158101 
>>158015
>класс
>класс
>класс
>класс
>класс
Нассал в рот за такое программирование.
Аноним 07/03/15 Суб 16:31:23 #278 №158203 
14257350830340.jpg
14257350833581.png
Тащемта, пока идёт стандартизация можно на годик-полтора забыть о публичных драйверах.
Даже сейчас хеллоу ворлд из одного треугольника занимает несколько сотен строк.
Аноним 07/03/15 Суб 19:02:58 #279 №158211 
>>158203
>Даже сейчас хеллоу ворлд из одного треугольника занимает несколько сотен строк.
Это так уже со времен перехода на шейдеры. Ничего не поделаешь, технология усложняется ради повышения производительности. Для упрощения есть движки, конструкторы. А ГЛ всегда был крайне низкоуровневым.
Аноним 07/03/15 Суб 19:21:12 #280 №158212 
>>158211
>крайне низкоуровневым
Нет. У него была и пока есть абстракция со стейтами.
Аноним 07/03/15 Суб 20:24:29 #281 №158218 
>>158211
>>158212
Не, тут фишка будет в другом.
Теперь драйвер будет ещё меньше сам что-то делать.
Теперь программист сам будет решать что, как и когда.
То есть работы будет ещё больше.
Аноним 07/03/15 Суб 20:46:50 #282 №158219 
>>158218
>работы будет ещё больше
Вот это да. И что самое приятное - порог вхождения повысится. А значит и наши з/п :3
Аноним 07/03/15 Суб 22:01:27 #283 №158224 
>>158211
Я начинал его осваивать когда треугольник можно было отрисовать кодом умещавшимся в экран тех же времен. Сейчас в принципе так же, только монитор нужен WQXGA.
Аноним 07/03/15 Суб 23:36:20 #284 №158233 
Рисую OpenGL в WinAPI окно. Сообщения клавиатуры/мыши думаю обрабатывать тоже средствами WinAPI, а потом уже отправлять в заранее приготовленные функции OpenGL. Какие могут быть подводные камни? (просто в туториалах везде создают окна средствами OpenGL, а не WinAPI, поэтому засомневался).
Аноним 08/03/15 Вск 00:45:01 #285 №158236 
>>158233
ОГЛ не умеет делать окна.
Аноним 08/03/15 Вск 11:04:02 #286 №158246 
>>158233
Не ссы, все норм будет. Только рекомендую подумать заранее о делении всего этого добра на потоки. Меньше лагать будет когда разжиреет.

>>158236
Он имел в виду всякие врапперы типа GLFW. Я сам когда-то с glScene начинал, а потом понял, что мне не нужен код, который влияет на производительность, который я не контролирую, и который в принципе могу убрать.
Аноним 08/03/15 Вск 13:20:22 #287 №158256 
Сначала ковырялся с glBegin .. glEnd, но решил перейти на новый способ. Сейчас по туториалам пытаюсь открыть контекст устройства, см. ссылку http://ideone.com/4oKHdK.
wglGetProcAddr возвращает NULL, т.е. в драйвер видеокарты не имеет эту функцию. Драйвера последние (2009), видеокарта древняя Intel GMA 3100. При этом старым способом, glBegin glEnd нормально всё рисует. Кто-нибудь сталкивался с таким?
Аноним 08/03/15 Вск 13:21:34 #288 №158257 
>>158256
Правильная ссылка на код:
http://ideone.com/4oKHdK
Аноним 08/03/15 Вск 13:25:26 #289 №158259 
>>158257
Если видеокарта не поддерживает GLSL, то кроме как покупать новый ПК выхода нет?
Аноним 08/03/15 Вск 14:28:48 #290 №158265 
>>158256
Педивикия вангует, что твой потолок на этой карте - OpenGL 1.4, то есть чуть-чуть выше dniwa ebanogo. Это эквивалент nVidia 2002-2003 года выхода. Купи себе хотя бы хотя бы GeForce 210 (самая дешевая с поддержкой OpenGL3), полтора килорубля. Можешь потратить больше - ищи по яндекс-маркету.
Аноним 08/03/15 Вск 14:31:29 #291 №158266 
>>158259
Можно купить новую видяху.
Причем самую дешевую.
Аноним 08/03/15 Вск 14:33:26 #292 №158267 
>>158257
Ты тут вызываешь команды ГЛ еще до того, как щакончишь с контекстом.
Сначала создай контекст потом давой ГЛ.
Еще - подключи GLEW - позволит юзать расширения без мозгоебство.
Аноним 08/03/15 Вск 14:36:01 #293 №158268 
>>158257
И еще >>157219 глянь.
Зону с выдиранием адресов для ГЛ функций можно опустить если будешь использовать ГЛЕВ.
Аноним 08/03/15 Вск 16:45:09 #294 №158289 
>>158267
Вот эти?
glShadeModel(GL_SMOOTH);
glClearColor(0.0f,0.0f,0.0f,0.5f);
glEnable(GL_DEPTH_TEST);
glDepthFunc(GL_LEQUAL);

>>158265
>>158266
Понял. У меня старый ноут, отдельно нельзя. Вот и повод поменять, давно думал об этом.
>>158268
Тру хакеры всё делают вручную )))
Аноним 08/03/15 Вск 16:55:59 #295 №158291 
>>158218
Правильно.
Ебаная нвидия уже заебала со своими кривыми, сука, драйверами.
Аноним 08/03/15 Вск 17:14:31 #296 №158297 
>>158291
>нвидия
И тем не менее, у них - лучшие дрова.
Аноним 08/03/15 Вск 17:18:42 #297 №158298 
>>158289
>Вот эти?
Да.
>glShadeModel
Устарело.
http://en.wikibooks.org/wiki/OpenGL_Programming/Migrating_from_1.x_to_2.x
Только с 1 до 2, но идея понятна, а в тексте детали.
Целься на ГЛ 4+
На самом деле 3.2+ дальше только различия в фичах.
Аноним 08/03/15 Вск 17:48:16 #298 №158300 
>>158289
Наконец перестали шатать яндекс-капчу.
Есть вариант для мсье знающих толк: Mesa 3D. На офсайте даже написано, что OpenGL 3.3 может, и что под даже под Windows можно поставить.
Аноним 08/03/15 Вск 18:11:18 #299 №158301 
>>158300
Если у нашего комрада нету бабла на новое железо А я подозреваю что он студент то твой вариант не худший, особенно учитывая некоторое повышение цен на железо и ноуты.
Но это надо быть полностью знающим толк
Аноним 08/03/15 Вск 19:24:52 #300 №158307 
Есть смысл изучать OpenGL сейчас или можно подождать Вулкан? Он же сильно измениться?
Аноним 08/03/15 Вск 19:27:43 #301 №158308 
>>158307
Во-первых, до вулкана ещё как до китая раком. Лет через 5 только девайсы появятся.
Во-вторых, «старые» девайсы на ogl4 будут жить ещё долго, а дюк нюкем должен умереть
Аноним 08/03/15 Вск 20:45:07 #302 №158310 
>>158308
> Во-первых, до вулкана ещё как до китая раком. Лет через 5 только девайсы появятся.
Смотрим на сайте Кроноса:
> Will work on any platform that supports OpenGL ES 3.1 and up
Смотрим в вики про OpenGL 3.1:
> Supported by Windows, Linux, Android (since Lollipop) on devices with appropriate hardware and drivers, including:
> Nvidia GeForce 400 series onwards (Windows)
Вывод?
Аноним 08/03/15 Вск 22:00:24 #303 №158314 
>>158310
Да никакого, кроме того, что ждать придётся на год меньше.
Я сейчас в том же положении, что и ты, но 5 лет ждать новый стандарт не собираюсь, и учу OGL сейчас.
Аноним 08/03/15 Вск 22:13:28 #304 №158318 
>>158310
Если железка поддерживает gl4.3/es3.1 то вулкан пойдёт.
Ждите.
Аноним 08/03/15 Вск 23:10:45 #305 №158324 
Как думаете, кошерно ли использовать ddx текстурки вместе с опнглом?
Я не в плане совместимости. Всё равно это всего лишь просто данные.
Аноним 09/03/15 Пнд 00:00:56 #306 №158330 
>>158324
http://users.telenet.be/tfautre/softdev/ddsload/explanation.htm
Аноним 09/03/15 Пнд 00:02:04 #307 №158331 
>>158330
Да я уже gli попробовал.
Хорошее.
Аноним 12/03/15 Чтв 10:56:23 #308 №158844 
Сап анон. Как мне нормально сделать скрытие невидимых граней в кубическом (аки минекруфт) мире?
Аноним 12/03/15 Чтв 13:04:39 #309 №158865 
>>158844
Octree, Frustum culling
Аноним 12/03/15 Чтв 13:16:56 #310 №158870 
>>158865
>Octree, Frustum culling
Я туториалы читал, ни хуя не взлетело. Поясни, как делать или туториал ссылку дай
Аноним 12/03/15 Чтв 13:22:01 #311 №158872 
>>158870
http://masandilov.ru/opengl/opengl-frustum
http://masandilov.ru/opengl/octree
Аноним 12/03/15 Чтв 13:24:10 #312 №158873 
>>158870
http://www.gamedev.ru/code/forum/?id=161884
Вот ещё мега тема.
Листай и ищи.
Аноним 12/03/15 Чтв 13:24:49 #313 №158874 
>>158872
Ай, спасибо
Аноним 12/03/15 Чтв 16:43:25 #314 №158911 
14261678051020.png
>>141146
Что я сделал не так?
Аноним 12/03/15 Чтв 17:01:01 #315 №158919 
>>158911
glEnable(GL_DEPTH_TEST);
Аноним 12/03/15 Чтв 22:33:00 #316 №158973 
>>158919
пасиба
Аноним 13/03/15 Птн 20:37:03 #317 №159159 
>>158911
Родился.
Аноним 16/03/15 Пнд 12:27:10 #318 №159678 
Двощ, как организовать камеру?
Я так понимаю, перед отрисовкой опенгл-ом, нужно пошаманить с координатами камеры и объекта, а то, что получилось, совать в опенгл?
чукча нечитатель
Аноним 16/03/15 Пнд 14:53:25 #319 №159693 
>>159678
Матрицы.
Аноним 16/03/15 Пнд 16:18:26 #320 №159708 
>>159693
И ещё вопрос: как организовать мультипоточный рендер?
Всё гарантированно же пойдёт по пизде, если один поток рисует жирную модельку белым цветом, а другому потоку в это время приспичило нарисовать модельку зелёным.
Аноним 16/03/15 Пнд 16:59:06 #321 №159710 
>>159708
Для этого тебе будет нужно создавать несколько контекстов отрисовки.
Аноним 18/03/15 Срд 19:27:52 #322 №159983 
Кирилл, как начать изучение опенГЛ? Что лучше учить - опенГЛ или Глут или СДЛ?
Аноним 18/03/15 Срд 19:34:42 #323 №159984 
>>159983
учи юнити
Аноним 18/03/15 Срд 20:05:37 #324 №159990 
Призываю знатоков glm.
Суть токова.
Нужно lookAt матрицу перевести в vec3 для view матрицы.
Аноним 18/03/15 Срд 20:05:51 #325 №159991 
>>159984
Пока что могу только в С++, да и хочу заниматься не только игорами, но графикой в принципе
Аноним 18/03/15 Срд 20:40:34 #326 №159996 
>>159983
Ты чет хуйню написал.
ОпенГЛ - либа рисования 3д и соответственно 2д графики. Альтернатива - Direct3D.
GLUT - кросплатформенная либа для создания окон с глконтекстом и получинем инпута.
SDL - делает тоже самое что и GLUT только есть еще возможность рисования 2д спрайтов в общем, на ней можно сделать платформер без использования опенгл. Так же в сдле еще куча хуйни типо звуков, сети и так далее, никогда ими не пользовался.
Я считаю, что и GLUT, и SDL устарели, протухи и нахуй не нужны. Можно самому создавать окна и получать инпут. Благо, операционных систем всего 2.5, не много переписывать придется
Тебе скорее всего нужен графон, следовательно OpenGL. Сразу рекомендую туториал: http://ogldev.atspace.co.uk/
Аноним 18/03/15 Срд 20:42:58 #327 №159997 
>>159996
Благослови тебя господь, спасибо что всё разъяснил. Улетел читать тутор.
Аноним 18/03/15 Срд 21:09:54 #328 №160000 
>>159996
>Можно самому создавать окна и получать инпут.
А можно взять SFML и не париться. Тамошнее окошко и в мультитрединг может, да и код для обработки инпута писать не надо.
Аноним 18/03/15 Срд 21:21:18 #329 №160004 
>>159996
В этом туторе же ГЛУТ используют.
>>160000
Не путайте меня. Что лучше пердолить - ОПЕНГЛ или СФМЛ?
Аноним 18/03/15 Срд 21:22:29 #330 №160005 
>>160004
SFML - аналог GLUT и SDL. У OpenGL считай всего один аналог - DirectX.
Аноним 18/03/15 Срд 21:37:30 #331 №160007 
>>160005
FreeGLUT и GLUT - говно мамонта. На свалку их.
SDL2/GLFW/SFML - это всё хорошо.
Аноним 19/03/15 Чтв 01:13:46 #332 №160049 
>>160004
Не смотри на уроки с GLUTом это вроде только первый урок, создай окно с глконтекстом другим путем и иди по туториалу дальше.
Аноним 19/03/15 Чтв 01:24:07 #333 №160051 
>>159990
Какой нахуй vec3?
lookAt не юзал.
Аноним 19/03/15 Чтв 14:49:33 #334 №160112 
14267657731000.jpg
Сука!
Полтора дня ебался lookAt!
Оказывается формула та что в тьюториале и в glm отличаются!
Просто пиздос!
Аноним 20/03/15 Птн 01:32:25 #335 №160201 
>>160112
Ты бы нормально объяснил, сразу бы ответил. А так нихуя не понятно.
Аноним 20/03/15 Птн 17:49:24 #336 №160283 
>>160201
Это просто ты ничего не понимаешь.
Если ты не знаешь, что такое vec3, lookAt матрица и тд, смысл тебе что-то объяснять.
Аноним 20/03/15 Птн 20:40:50 #337 №160308 
>>160283
Я знаю что такое vec3 и lookAt матрица, только не могу понять как и нахуя тебе ее переводить в вектор.
Аноним 20/03/15 Птн 22:09:46 #338 №160316 
>>160308
Для шадоу маппинга нужна камера из источника освещения.
Аноним 21/03/15 Суб 08:47:40 #339 №160345 
>>160316
>>160308
>>159990

https://www.opengl.org/sdk/docs/man2/xhtml/gluLookAt.xml
http://wiki.delphigl.com/index.php/gluLookAt

lookAt и есть вью матрица.
Аноним 21/03/15 Суб 09:02:15 #340 №160347 
>>160345
Я знаю это.
Но в моей камере есть матрица проекции 4х4 и 2 вектора: углы поворота и положение в пространстве.
Не хотел ещё одну матрицу под вид.
Аноним 22/03/15 Вск 03:02:35 #341 №160456 
Использую glfw.
Так вот когда я не в фуллскрине, то примерно 20-30% процессорного времени отжирается.
Когда же я включаю фуллскрин, то там доходит до 50% и больше.
Как решить эту проблему?
Менял pollEvents на waitEvents и вообще ничего не меняло.
Аноним 22/03/15 Вск 03:58:17 #342 №160458 
>>141146
Есть тут люди кодящие на FPC в лазарусе под линя? Не могу найти как к нему цепляются библиотеки опенгла. Даже не понимаю, цепляются ли они как внешние .so или там в палитру надо что-то добавлять, или пакеты к ide (как castle_egine), а может как под виндой (там через winAPI) как-то. Короче, кто в теме, поясните мне по хардкору.
Аноним 22/03/15 Вск 08:33:52 #343 №160464 
>>160458
Цепляются через стандартные модуди gl и glext. Но сейчас есть одна проблема: поменялась спецификация вызова glGetString, из-за этого glext.pp надо переписывать. Раньше glGetString(GL_EXTENSIONS) выдавал цельную строку, которую надо было парсить, сейчас эта функция выдает названия расширений по одному, надо только указать номер расширения в последовательности. У себя я эту проверку вырезал нафиг и тупо гружу все подряд под OpenGL 3.3, хотя формально это неправильно.
Хотя я под вендой работаю, не думаю, что под линем будет что-то иначе в этом плане.
Аноним 22/03/15 Вск 14:21:02 #344 №160494 
>>160464
>Цепляются через стандартные модуди gl и glext
Вот это и вызывает у меня непонятки, на вики пишут:
> OpenGL units in Lazarus
>Lazarus includes a TOpenGLControl - a LCL control with an OpenGL context. The Lazarus package >LazOpenGLContext can be found in lazarus/components/opengl/lazopenglcontext.lpk. An example can be found in lazarus/examples/openglcontrol/openglcontrol_demo.lpi.
>If you want to modify TOpenGLControl implementation, for example to add new properties like ColorBits and AuxBuffers, see Extending TOpenGLControl.
Third party OpenGL units
>GLScene is a Lazarus package with lots of extra features for OpenGL applications.
>Castle Game Engine allows you to navigate and render 3D worlds (in VRML, X3D and other 3D formats).

Т.е. под LCL есть стандартные компоненты, под GLUT есть 3парти, второй я попробовал, там фактически готовый 3д движок, не то, что я хотел. Под GLUT я не вижу стандартных компонент. Сам freeglut у меня установлен, вместе с пакетом никаких пакетов самого лазаруса не шло (во всяком случае я не нашел в папках куда он поставился). Вот я и не врубаюсь, как оно цепляется.
Аноним 22/03/15 Вск 15:12:30 #345 №160502 
>>160494
Вики у лазаря вообще тухлая какая-то, видимо основная аудитория - соскочившие с дельфей где-то около 7 версии, уже научившиеся всему более-менее нужному, и бомбящие от того, что уютная идешечка превратилась в монстростудию.

Ты сначала gl и glext подруби и попробуй создать контекст. Готовые библиотеки и компоненты (ох, как же припекало от запросов "кокой компонент скочать шоб было заебись?") конечно есть, но лучше не надо. GLScene - это наверное уже какой-то недоюнити стал, я помню его ещё году в 2006 щупал. Хотя было зашибись из первой халфы модельки в него пихать и анимацию гонять.

И лучше потрать недельку чтоб понять как оно изнутри фурычит, хотя бы как инициализируется, чем с места, в карьер, да по компонентам. В принципе ничего сложного нет, я даже когда-то писал лапшу из ifdef-ов, и в результате имел недовелосипед (под OpenGL 1.1, лoл), который успешно компилировался сразу и под виндой и под линем. Самое сложное было - заделать кросплатформенно обработку мыши и клавиатуры - у winapi и Хserver отличаются принципы работы с вводом.

Посмотри вот это: http://andru-kun.inf.ua/articles/linux_opengl_fpc_part1.html
Заодно сравни с инициализацией под виндой, для просветления.
Аноним 22/03/15 Вск 15:44:54 #346 №160510 
>>160502
>Ты сначала gl и glext подруби и попробуй создать контекст
Да емае, я это и пытаюсь сделать. Я раньше на DevC ебашил на опенгл, там вообще хидеры подцепил и понеслась. Как в лазаре это делается не пойму хоть убей. Под спермой, через винапи можно ддлку опенгла подключить динамически и оттуда невозбранно вызывать что тебе надо, в лине .so также цеплять или что?
>И лучше потрать недельку чтоб понять как оно изнутри фурычит
Да я только за, с удовольствием поковыряю, только нет годного гайда. Есть старые православные уроки нехе, как раз по глуту, но они как я понимаю протухли. Конкретно в лазаре все гайды выглядят так, "Создаем приложение - Подключаем опенг компоненты - Ебашим код" и дальше листинг кода, а как все подключается нигде, сука, не написано. Или может я какой-то деревенный?
>Посмотри вот это: http://andru-kun.inf.ua/articles/linux_opengl_fpc_part1.html
Чет мертвая ссыль, не открывается.
>который успешно компилировался сразу и под виндой и под линем
Я поэтому лазаря и мучаю, он умеет сразу под кучу платформ без гемороя компилить, типа один раз написал и сразу кросплатформа сплошная.
Аноним 22/03/15 Вск 15:46:11 #347 №160511 
>>160502
Распиши по шагам если не сложно или ссыль на почитать, будь любезен.
Аноним 22/03/15 Вск 16:25:50 #348 №160518 
>>160510
>я это и пытаюсь сделать
И что? Неужели пишет "модули не найдены"? Но они же входят в стандартную поставку freepascal.

Модули gl и glext собственно и занимаются динамическим подключением, и сами выбирают через проверку платформы (в compile-time) dll тягать или so. Надеюсь у тебя стоят свежие проприетарные дрова, и ты не будешь мучать проц месой.

А ссылка живая, я спецом для тебя в гугле за минуту нашел ее. Может у тебя особый провайдер, который считает, что лазить в домен ua - instant zashquar? Тогда вот тебе другая ссылка, там статья №1 та же, но теперь кури все три: https://mirgames.ru/topics?tag=freepascal

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

Через год-два у нас будет Vulkan, от этой инфы останется только как создать окно и отдать драйверу ссылку на его контекст.
Аноним 22/03/15 Вск 16:35:34 #349 №160521 
14270313346660.png
14270313346661.png
14270313346692.png
>>160518
>Неужели пишет "модули не найдены"?
Да нет же. Ну как-то так, как на пикрелейтед.

Установил фриглут, смотрю список пакетов - его там нет, смотрю стандартную панельку лазаря, там только LCL компонент. Что, куда и как ставить и подключать, вот в чем вопрос. Посмотрел папки с фриглутом, там дохуя разных .so и конфигурационных файлов, .lpk файлов нет.
>Может у тебя особый провайдер
Через тор тоже не показывал, а заблоченые сайты подругому отображаются. Впрочем спасибо за ссылку, тоже почитаю обязательно.
Аноним 22/03/15 Вск 16:56:00 #350 №160522 
>>160521
>Да нет же. Ну как-то так, как на пикрелейтед.
Yoptvojmatt...

uses
gl, glext, glx, x, xutil, xlib;

begin
end.


Вот этот код компилится или нет?
Аноним 22/03/15 Вск 17:06:44 #351 №160523 
>>160522
>gl, glext, glx, x, xutil, xlib
Да компилится. Только он нихуя не видит функций глута, ни glutSwapBuffers, ни glutInit.
Но я тебя понял, тупо хидерами значит цепляется, спасибо просветелел.
Аноним 22/03/15 Вск 17:12:02 #352 №160524 
>>160523
А все, uses glut и все дела. Пиздец, все так просто оказалось лол.
Аноним 22/03/15 Вск 17:13:48 #353 №160525 
>>160522
>>160523
>>160524
Раз уж такая пляска, я тут читаю везде говорят глут говно мамонта и на нем кроме простейших вещей ничего не запилить. С чем вообще тогда серьезные пацаны работают, которые на опенгл игрища и прочие ништяки делают?
Аноним 22/03/15 Вск 17:13:55 #354 №160526 
>>160523
Glut просто ненужен.
Читай те статьи и применяй на практике.
Для OpenGL от третьей версии и выше (надеюсь ты не будешь топтаться в 1.х, legacy и FFP), ты будешь делать всё это своими руками сам.
Аноним 22/03/15 Вск 17:47:54 #355 №160531 
>>160525
SDL
Аноним 23/03/15 Пнд 17:48:03 #356 №160705 
Помогите аноны, ищу не столько готовое решение, сколько теоретические пояснения.
Практически все уроки ограничиваются тем, что "создаем шейдер, VAO, VBO, IBO, и рисуем один треугольник/квадрат/куб". Но что делать если я хочу рисовать несколько разных VBO с одним шейдером, или один и тот же VBO с разными шейдерами за кадр?
Меня сильно смущает следующее (подозреваю последствия бездумного копирования и безумные умения в говнокоде):
в процессе создания VAO-VBO-IBO надо получить из текущей шейдерной программы входные атрибуты для свойств вершин (XYZ, UV, нормали, цвета), и по сути привязать их к VBO. Почему привязать? Ну потому что в glVertexAttribPointer надо указать свойства массива с данными вершин - размер записи по одной вершине и смещение в записи для определенного свойства. И не забыть еще glEnableVertexAttribArray.

Правильно ли я понимаю, следующее:
1) glGetAttribLocation надо выполнить один раз на каждый входной атрибут для каждой шейдерной программы и сохранить в записи/объекте, который будет представлять этот шейдер в моем велосипеде;
2) при создании в runtime уникального объекта, в котором будут храниться ссылки на VAO-VBO-IBO (от уже неуникального меша) надо создать новый VAO, забиндить старые VBO и IBO, и заново привязать атрибуты шейдера к VAO через glVertexAttribPointer;
3) при рисовании не потребуется ничего более, кроме как забиндить соответствующие VAO и шейдер.
Аноним 23/03/15 Пнд 20:35:49 #357 №160742 
14271321491710.png
14271321491711.png
14271321491712.png
>>160705
> 1) glGetAttribLocation надо выполнить один раз на каждый входной атрибут для каждой шейдерной программы и сохранить в записи/объекте, который будет представлять этот шейдер в моем велосипеде;
Можно при заполнении буфера установить адреса атрибутов.
Гляди пикчи.
> 3) при рисовании не потребуется ничего более, кроме как забиндить соответствующие VAO и шейдер.
Смотря, что ты рисуешь.
Может быть ты рендеришь в текстуру, то для начала надо забиндить текстуру ( ну это для построения теней, например надо )
А так да.
Аноним 23/03/15 Пнд 20:42:34 #358 №160745 
>>160742
Я имел в виду, что хочу по возможности использовать разные VBO с одним шейдером, и наоборот, один VBO с разными шейдерами, и все это в одном кадре. При этом в вершинном "супе" могут быть заданы UV, цвета, нормали, могут быть не заданы (соответственно разные смещения). Я правильно понимаю, что glVertexAttribPointer устанавливает связь между конкретным VAO и конкретным шейдером или нет?
Рендерить в текстуру пока не планирую, но вроде там не должно быть больших подводных камней?
Аноним 23/03/15 Пнд 21:06:20 #359 №160752 
>>160745
> Я имел в виду, что хочу по возможности использовать разные VBO с одним шейдером
Можно.
Например какой-нибудь шейдер для освещения, а там всё равно на что светить. Кубили или шарики.
> и наоборот, один VBO с разными шейдерами
Можно.
Например. Рендерить тот же свет с тенями и без теней. С картами нормалями и без них и тд.
> Я правильно понимаю, что glVertexAttribPointer устанавливает связь между конкретным VAO
Да, типа того.
Но перед рендерингом можешь отключать не нужные атрибуты
Типа так:
vao.Bind();
glDisableVertexAttribArray( адрес_атрибута );
glDraw...
vao.Unbind();
> конкретным шейдером
Если ты при написание шейдера не установил явно номер атрибута ( как на 3ей пикче выше ), то видеокарта это сделает за тебя.
Аноним 23/03/15 Пнд 21:32:25 #360 №160760 
>>160752
Ага. То есть по сути надо биндить каждого с каждым заново. Последний тогда вопрос (на закрепление понимания): куча VAO, каждый со своим шейдером, но все с одним VBO-IBO - будет нормально работать как масса объектов с одним мешем и разными материалами, или надо из RAM под каждый VAO заново загонять меш в отдельный VBO-IBO?
Аноним 23/03/15 Пнд 21:41:48 #361 №160764 
>>160760
> То есть по сути надо биндить каждого с каждым заново
Не обязательно.
> куча VAO, каждый со своим шейдером, но все с одним VBO-IBO - будет нормально работать как масса объектов с одним мешем и разными материалами, или надо из RAM под каждый VAO заново загонять меш в отдельный VBO-IBO?
Я нихуя не понял.
Чего ты хочешь?
https://code.google.com/p/gl33lessons/
Вот эти уроки посмотри.
Аноним 23/03/15 Пнд 21:50:33 #362 №160766 
>>160764
Вот как раз смотрю. Ладно, вроде бы что-то доходит. Спасибо за поддержку, анон.
Аноним 24/03/15 Втр 00:23:24 #363 №160820 
14271458047820.png
Сука!
Ведь не похоже на карту нормалей?
Аноним 24/03/15 Втр 04:29:33 #364 №160851 
14271605730880.png
>>160820
Проебался с этим говном.
Ну теперь всё нормально.
Аноним 24/03/15 Втр 04:42:16 #365 №160852 
14271613364720.png
>>160851
Немного крипоты.
Аноним 25/03/15 Срд 16:49:04 #366 №161045 
Как вытащить текстуру из видеопамяти? Отрендерил сцену через фреймбуфер в неё, теперь хочу сохранить как bmp.
Аноним 25/03/15 Срд 17:19:50 #367 №161049 
>>161045
https://www.opengl.org/sdk/docs/man/html/glMapBuffer.xhtml
Аноним 25/03/15 Срд 17:20:17 #368 №161050 
>>161045
Нашел glGetTexImage(). Надо таки прочитать все доки.
Аноним 29/03/15 Вск 03:12:12 #369 №161488 
14275879323860.jpg
Чуваки я тут задумался о такой вещи.
Что видеокарте отрисовать проще один quad с пустыми участками в текстуре или десяток другой полигонов образующие контур тех мест что заняты на текстуре.
Аноним 29/03/15 Вск 03:54:18 #370 №161491 
>>161488
смотря который шейдер жырнее.
Аноним 29/03/15 Вск 05:24:28 #371 №161495 
>>161488
Ставлю 16 пикселей на квад.
Аноним 29/03/15 Вск 14:27:51 #372 №161548 
>>161488
http://gamedev.stackexchange.com/questions/34223/must-i-worry-about-quad-based-rendering-in-real-world-scenarios
Аноним 29/03/15 Вск 14:50:55 #373 №161551 
>>161548
значит особой разницы нет, что рисовать два трингла(quad) как плоскость для всей картинки, или произвести отсечение пустых участков образуя контур картинки с помощью полигонов.
Аноним 05/04/15 Вск 21:29:00 #374 №162860 
14282585407890.jpg
Всем привет.
Кто-нибудь может пояснить за order independent transparency? Какой самый простой алгоритм, и реально ли новичку реализовать его в программе на opengl? (и обязательно ли для реализации алгоритма работа с шейдерами?)
Аноним 06/04/15 Пнд 09:10:59 #375 №162909 
>>162860
> Какой самый простой алгоритм
Сортировка по глубине на цпу. Самописные шейдеры ненужны. Баги у пересекающихся полупрозрачных квадов/мешей.
Аноним 06/04/15 Пнд 19:50:17 #376 №163000 
Ребята, доставьте пожалуйста что-то про WebGL, чтобы я прочел и смог делать такое: http://madebyevan.com/webgl-path-tracing/
Аноним 07/04/15 Втр 10:09:24 #377 №163099 
>>163000
Когда webgl будет в продакшене, маня?
Аноним 09/04/15 Чтв 16:49:55 #378 №163508 
>>163099
а что мешает его юзать ? все браузеры уже поддерживают. куча библиотек тоже есть.
Аноним 11/04/15 Суб 04:08:53 #379 №163712 
>>163508
0.00000000000000000000000000000000 практической пользы
sageАноним 11/04/15 Суб 14:03:51 #380 №163736 
Аноны, подскажите, пожалуйста!

Был у меня тупой процедурный код, рисовавший один квад, все как положено: vertex array object, vertex buffer object, index buffer object, шейдерная программа (OpenGL 3.3).

Стал я заворачивать все в объекты.
Текстура: пиксельный массив (хранится до передачи на видеокарту) и параметры, включая текстурный объект.
Материал: шейдерная программа и ссылки на текстуры;
Меш: вершины, индексы, vertex buffer object и index buffer object;
Модель: ссылки на материал и меш, vertex array object, атрибуты для шейдерной программы.

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

Пока все это барахло писал, ни разу естественно не запускал на отрисовку, только отлаживал взаимодействие между объектами и потоками. Сейчас перенес кусок кода из старой процедуры в метод отрисовки модели и обломался. Ловлю SegFault на вызове glDrawElements/glDrawArrays (однофигственно). Даже попытка вызвать через них отрисовку только первого треугольника падает. Сижу второй день, отлаживая в gDEBugger, он мне показывает, что вроде бы сейчас все норм, все буфера правильно заполнены (была например тупая ошибка экспорта меша, когда я забыл правильно выставить endianness, и еще более тупая, когда не в том порядке читал данные из файла), правильно прицеплены, и т.д. Надеюсь, что gDEBugger доверия заслуживает, и что правильно показывает данные,

которые уже в видеопамяти.

Я даже попробовал вместо загрузки модели из файла заполнить ее буферы с помощью старого кода на один квад (4 вершины по 3 флоата на координаты и 2 на текстурные координаты, 6 индексов - целое без знака). Результат тот же самый - Segmentation Fault. Кто выбивает его? Не понимаю вообще.

Вот тот метод отрисовки: http://pastebin.com/mAvkBjUC

Кто-нибудь ещё сталкивался с такой проблемой?
Аноним 11/04/15 Суб 15:52:35 #381 №163747 
14287567558670.jpg
14287567558701.jpg
>>163736
ГДач! Ты резиновая уточка!
Я потратил два дня на отладку, полчаса на вдумчивое описание проблемы, а через десять минут заметил, что в методе загрузки модели на видеокарту (то место, где связываются меш и шейдер) ПРОСТО ОТСУТСТВУЕТ привязка входных атрибутов шейдера к непосредственно разреженным данным в вершинном супе (glVertexAttribPointer). Разумеется glDrawArray/glDrawElements охреневает от моей попытки послать его читать неопределенный указатель.
Всем удачи, успехов, и тоже быть повнимательнее!
Аноним 15/04/15 Срд 18:45:39 #382 №164269 
Ребята!

Почему в доках для OpenGL ES 2 написано, что glVertexAttribPointer можно кормить всякими приколюхами таких типов: GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_FIXED, GL_FLOAT.

А в доках для GLSL 1.0 (который юзается в этом огл), написано что есть только такие типы: bool, int, float.

Есть какой-то смысл, чтоб скармливать glVertexAttribPointer GL_UNSIGNED_BYTE, GL_SHORT etc, или есть смысл кормить только GL_FLOAT?
Аноним 15/04/15 Срд 19:33:37 #383 №164278 
>>164269
> написано что есть только такие типы: bool, int, float.
Это в шейдере.
> Есть какой-то смысл, чтоб скармливать glVertexAttribPointer GL_UNSIGNED_BYTE, GL_SHORT etc, или есть смысл кормить только GL_FLOAT?
Обычно да, юзается gl_float, но можно попробовать упаковывать эти самые флоаты в инты для передачи в шейдеры и там распаковывать
Аноним 15/04/15 Срд 22:10:28 #384 №164295 
>>164269
ты не путаешь названия типов с именами констант?
Аноним 17/04/15 Птн 18:00:09 #385 №164659 
Еще раз всем привет.
Как замерить fps у своей opengl программули?
Аноним 17/04/15 Птн 18:06:45 #386 №164661 
>>164659
glFinish и около него считай фпс юзая время из стандартной либы твоего языка
Аноним 18/04/15 Суб 14:09:36 #387 №164831 
Я нарисовала 2 ёбанных треугольника в распрекрасном С++ OpenGL я БАГИНЯ о лол. я БАГИНЯ!!!
а ещё и дя, я пидараск, лол, :3
Аноним 18/04/15 Суб 14:22:33 #388 №164832 
14293561534410.jpg
Сегодня графонорождённый одногрупник сказал, что опенжл НЕНУЖЕН. И, вообще, на нём никто не работает и йобу на нём не делают, ведь для этого есть директХ. Я всё.
Аноним 18/04/15 Суб 14:23:12 #389 №164833 
>>164661
я юзаю примерно такой код.
glutSwapBuffers();

glFinish();

FPS();

рисую 2 ёбанных треугольника . фпс в Release-e без glFinish примерно 6000-7000.

с финиш до SwapBuffers примерно 4000
с финиш после SwapBuffers примерно 3700
если я вызываю 3 Finish после SwapBuffers фпс проседает до 2000. почему так?

Аноним 18/04/15 Суб 14:44:55 #390 №164835 
>>164278
>упаковывать эти самые флоаты в инты
может инты в флоаты? зачем флоаты в инты упаковывать?
Аноним 18/04/15 Суб 14:46:14 #391 №164837 
>>163712
поцчеиу ви таг считаете?
Аноним 18/04/15 Суб 14:59:14 #392 №164839 
>>164832
вот на самом деле тоже интересует этот вопрос. почему все ноют о том что OpenGL нинужен. Насколько я знаю и представляю OpenGL используется в слабых смартфонах, высокопроизводительные смартфоны Android ные смартфоны поодерживают DirectX? На ИФоны есть Metal вроде как уже. Хотя вопрос с DirectX тоже стоит. Он там есть? Или может все юзают CoreGraphics? Или может всем похуй и все юзают Сасоs2Д? Или можэт вапще мёртворождённый Флешь? Или все писают кипятком от каробки Unity. Или таки удобнее юзать OpenGL?

OpenGL по идее везде работает. Почему все ноют, что на нём всё так плохо. Куча подявзок на многие языки. В Android ной Jav-е есть аж 3 вида подвязок. из пэкиджа com.android, com.khronos и в NDK. Всякие там приставки хуеставки его тоже поддерживают вроде как. В Цпп родной интерфейс. Под сладкий-тупой-медленный Python есть подвязки. Этот ваш не нравящийся вам WebGL вполне себе на OpenGl основан. Вай соу сериоуз?

Чем ДиректХ так лучше OpenGL?
Аноним 18/04/15 Суб 17:41:50 #393 №164856 
14293681102060.png
14293681102061.jpg
14293681102162.jpg
В общем тема такая охуел от шейдеров немного не понял в GLSL хочу сделать маску. Имеем изображение (фигуру) и какой нибудь бесшовный фон. в Итоге получаем фигуру окрашенную этим фоном.
Хуй знает как но сделал кое какой код:
fragmentShader:
[CODE]#ifdef GL_ES
precision mediump float;
#endif

varying vec4 v_color;
varying vec2 v_texCoords;
uniform sampler2D u_texture;
uniform sampler2D u_maskTexture;

void main() {
vec4 color = v_color texture2D( u_texture, v_texCoords );
vec2 maskCoords = vec2(v_texCoords.x
2.0, v_texCoords.y 12.0);
vec3 mask_color = texture2D(u_maskTexture, maskCoords).rgb;
if( color.a == 0.0 ) gl_FragColor = vec4( color.r, color.g, color.b, color.a );
else gl_FragColor = vec4( mask_color.r, mask_color.g, mask_color.b, color.a );
}[/CODE]

vertexShader:
[CODE]attribute vec4 a_position;
attribute vec4 a_color;
attribute vec2 a_texCoord0;
attribute vec3 a_maskTexture;

uniform mat4 u_projTrans;

varying vec3 v_maskTexture;
varying vec4 v_color;
varying vec2 v_texCoords;

void main() {
v_color = a_color;
v_maskTexture = a_maskTexture;
v_texCoords = a_texCoord0;
gl_Position = u_projTrans
a_position;
}[/CODE]

Не особо понял что такое v_texCoords и что вместо него передать надо. Плиз гдач выручай
Аноним 18/04/15 Суб 21:33:37 #394 №164898 
Господа, доставьте туторы по WebGL, с легкой руки взял как тему на диплом WebGL, а придумать, что вообще делать, как-то никак. Может есть у кого-то идея или уроки, по которым можно что-то эпическое сделать?
Аноним 19/04/15 Вск 09:04:04 #395 №164942 
>>164898
В инете полно эпичных демок и даже с пояснениями, неужели не нагуглил?
Аноним 19/04/15 Вск 15:12:07 #396 №164959 
>>164898
> с легкой руки взял как тему на диплом WebGL
Лошара!
Аноним 19/04/15 Вск 16:23:27 #397 №164962 
>>164898
http://codeflow.org/entries/2012/aug/25/webgl-deferred-irradiance-volumes/
Вот тебе эпическая шняга, с разъяснениями, осилишь сам такую сделать?
Только в чем смысл диплома? Бакалаврский курсач что ли?
Аноним 19/04/15 Вск 19:47:41 #398 №164978 
>>164898
держи охуенны тут. всё по шагам. и всё такое.
http://www.webglacademy.com/courses.php?courses=0|1|20|2|3|4|23|5|6|7|10#0
Аноним 19/04/15 Вск 22:06:09 #399 №165008 
>>164962
>>164978
Ничего себе, спасибо большое, то что надо, придется потеть. Ну да, бакалаврский, баловство конечно, но всё равно важный шаг на жизненном пути.

>>164942
Демки крутые нагуглил, а пояснения только к совсем энтри левелу.

>>164959
Бывает.
Нарисовать сферу. Аноним 21/04/15 Втр 01:17:25 #400 №165163 
Как я могу сгенерировать сферу в OpenGL с заданным радиусом (получая на выходе набор вертексов и набор индексов, по которым отрисовывать треугольники)?
Аноним 21/04/15 Втр 01:28:04 #401 №165166 
>>165163
Ебанутый? В гугле забанили? Формулу сферы не знаешь? Найти не можешь? Пиздец.
Аноним 21/04/15 Втр 01:39:49 #402 №165173 
>>165166
Там не так всё просто, сучара.
Аноним OP 21/04/15 Втр 01:53:12 #403 №165176 
>>165173
Ну пиздец. Берешь формулу, проходишь по ней циклом с нужным шагом. Триангулируешь. Готово!
sageАноним 21/04/15 Втр 15:29:00 #404 №165277 
>>165163
>>165166
>>165176

Никак. Это только через библиотеку glu.
Гугли функцию gluSphere.
Аноним 29/04/15 Срд 05:25:12 #405 №166850 
>>164856
Ну и че, где прокодеры двача?
Аноним 30/04/15 Чтв 18:27:56 #406 №167084 
>>166850
Залей на пастбин какой-нибудь, я слепой и непонятно нихрена без подсветки и отступов нормальных.
А еще поставь себе RenderMonkey, он хоть и старый, но довольно годный для быстрой обкатки шейдеров на GLSL.
Аноним 07/05/15 Чтв 11:56:42 #407 №167948 
14309890026840.jpg
>>164856
>>167084
Залил на пастебин
http://pastebin.com/Wg60qGja
Аноним 25/05/15 Пнд 22:06:11 #408 №169729 
>>164962
Вот это просто запредельная штука, ребята, а есть такая же, но с видео-туториал на 10 часов, где всё наглядно объясняется?
Аноним 25/05/15 Пнд 22:35:31 #409 №169732 
>>167948
Юзай лучше glsl 330
Аноним 31/05/15 Вск 17:22:17 #410 №170449 
14330821378890.png
Я тут думал-думал и вот что надумал: как в диабло-3D-дрочильнях с видом сверху обрезаются спрайты и объекты за стенами? Пикрелейтед.
Что если партиклы от эффектов считаются на ГПУ? Заранее вычисляются препятствия на ЦПУ? Или что-то передается в шойдеры?
Аноним 31/05/15 Вск 18:40:18 #411 №170456 
>>170449
> Я тут думал-думал и вот что надумал: как в диабло-3D-дрочильнях с видом сверху обрезаются спрайты и объекты за стенами?
Z-Buffer
sageАноним 31/05/15 Вск 20:31:44 #412 №170463 
>>170449
Occlusion Culling
Аноним 31/05/15 Вск 21:08:25 #413 №170465 
14330957053400.jpg
14330957053401.jpg
>>170456
>>170463
Для этого надо, чтоб загораживало что-нибудь, черный плейн но если встать рядом со стеной, то персонаж и область вокруг него просвечивается. Скриншеты, например.
sageАноним 31/05/15 Вск 21:44:39 #414 №170469 
>>170465
Как в д2 просто if пл draw orderу, если тип спрайта стена и его порядок отрисовки выше чем у героя, то рисовать с прозрачностью. Как в ф2 так же, просто в 2 драв кола, рисуешь все что ниже героя и героя, потом меняешь шейдер на другой с яйцом и дорисовываешь остальное (в шейдер передаешь координаты героя и радиус).
sageАноним 31/05/15 Вск 21:46:34 #415 №170471 
>>170469
Ну это все о 2д спрайтовые изометрию. Как в 3д окружении сделать хз.
Аноним 01/06/15 Пнд 06:53:42 #416 №170526 
>>170471
Wasteland 2 на том же хуюнити, расковыряй его да посмотри.
Аноним 01/06/15 Пнд 16:00:17 #417 №170566 
Что читать, чтобы научиться делать годноту как тут: http://glslsandbox.com/ ? Пробую разбирать понравившиеся примеры - ето пиздец, я тупой и дунно как такое писать.
Аноним 01/06/15 Пнд 17:05:17 #418 №170571 
>>170566
Матешу.
http://glslsandbox.com/e#24995.1
Аноним 09/06/15 Втр 12:49:31 #419 №171372 
Братцы, заебался с камерой. Мне нужно чтоб она крутилась на все 360 градусов мышкой во все стороны.
Сделал 2 вектора up и right, и вращаю их друг относительно друга пропорционально перемещению мыши, а направление получаю как cross(up, right), по началу ок, но беда в том, что через некоторое время эти вектора становятся не перпендикулярными, понимаю, что это из-за погрешностей floating point, но сука, как побороть? Мне нужно именно вращение камеры именно относительно ее предыдущего положения, а не как в шутерах.
Аноним 09/06/15 Втр 13:10:46 #420 №171374 
>>171372
Зачем тебе right? Он тупо без задачь.

Попробуй (dir, up), dir - вращай пропорционально мышке.
Аноним 09/06/15 Втр 14:00:00 #421 №171380 
>>171374
Если, dir буду вращать вокруг up для того чтоб смотреть влево-вправо, то вокруг чего вращать up чтоб смотреть вверх-вниз?

Подчеркиваю, мне ненужно чтоб камера сохраняла ориентацию относительно какой либо плоскости, пусть заваливается в любые стороны, но нужно свободное вращение без ограничений.
sageАноним 09/06/15 Втр 16:48:36 #422 №171402 
>>171380
>то вокруг чего вращать up чтоб смотреть вверх-вниз?
относительно cross(up, dir)
форман.жпг
Аноним 09/06/15 Втр 19:23:06 #423 №171416 
>>171372
Что тебе мешает вместо двух векторов изменять view-матрицу и хранить каждое ее состояние?
То есть у тебя есть изначальное положение и view-матрица для каждого состояния камеры. Таким образом вектора всегда будут перпендикулярны и предыдущее состояние будет так же задаваться view-матрицей.
Аноним 09/06/15 Втр 19:49:37 #424 №171418 
>>171416
То, что ньюфажина, и не понимаю как это сделать. Точнее я понимаю, как сделать матрицу поворота, но как ее менять нужным мне образом уже не понимаю. Будь няшей, поясни или ссылочку дай.
Аноним 09/06/15 Втр 23:29:22 #425 №171446 
>>164832
Какая специальность?
Аноним 10/06/15 Срд 08:02:43 #426 №171474 
У меня вот так:

float[] c = camera.getCamera();
float[] u = camera.getUp();

float[] orto = Vector3f.crossProduct(u, c);
Vector3f.normalize(orto);

Quaternion q = Quaternion.product(
Quaternion.fromAxisAndAngle(u, cameraLeftRight_),
Quaternion.fromAxisAndAngle(orto, cameraUpDown_));

c = Quaternion.rotate(c, q);
Vector3f.divLength(c, cameraRadius_);
camera.setCamera(c);

float[] t = camera.getTarget();
t = Quaternion.rotate(t, q);
camera.setTarget(t);

u = Quaternion.rotate(u, q);
camera.setUp(u);

Здесь еще таргет поворачивается и меняется расстояние между камерой и таргетом. Все на float, вращал много но проблем не было.
Возможно нужно пересчитывать up не поворотом старого а произведением orto x up
Аноним 10/06/15 Срд 08:05:56 #427 №171475 
>>171372 -> >>171474

Аноним 10/06/15 Срд 09:38:50 #428 №171482 
>>171474
Кватернионы-кватерниончики. Спасибо анон, покурю.

Впрочем мой способ тоже заработал, когда я стали пересчитать не оба вектора от старых значений, а последовательно.
Аноним 10/06/15 Срд 11:12:32 #429 №171491 
Ребята, зачем вы апи насилуете, просто интересно. Вы хотите игры делать или вас просто прет от графона?
Аноним 10/06/15 Срд 11:24:26 #430 №171493 
>>171491

Мне это показалось проще чем разбираться с движками. Сейчас думаю попробовать какой-нибудь но хер же выберешь.
Аноним 10/06/15 Срд 11:55:05 #431 №171495 
>>171491
Чтоб разобраться в основах. Начав с самого верха, часто сталкиваешься с непониманием, откуда взялся косяк и как его победить.
Аноним 10/06/15 Срд 14:21:12 #432 №171520 
>>171493
Юич бери. Бесплатный и мощный.
>>171495
Это если бы ты начал дом строить с добычи руды для выплавки молотка.
Аноним 10/06/15 Срд 15:18:05 #433 №171529 
>>171520
>Это если бы ты начал дом строить с добычи руды для выплавки молотка.
Если бы я лез под капот opengl, то аналогия была бы верной.
А так скорее изучение материалов, методов строительства, инструментов.
Аноним 10/06/15 Срд 15:48:43 #434 №171534 
>>171529
Тебе бы векторов хватило и тригонометрии.
Аноним 11/06/15 Чтв 02:41:27 #435 №171646 
>>171520

Шарповый :/
Аноним 11/06/15 Чтв 03:06:57 #436 №171647 
>>171534
Если придётся заниматься какой-то просто задачей, то монструозный игровой движок, конечно хорош, но слишком большой для такого дела.
Также не стоит забывать про OpenGL ES.
Аноним 11/06/15 Чтв 03:09:14 #437 №171648 
>>171520
>Это если бы ты начал дом строить с добычи руды для выплавки молотка.
С изучения сопромата, изучения разных материалов типа кирпича, газобетона и всей подобной хуйни для нормального рассчёта нагрузки на разные части здания.
Выплавка молотка — это свой софтверный рендер городить.
Аноним 12/06/15 Птн 06:47:04 #438 №171723 
Помните, в Морровинде интериоры строились из блоков пикрелейтед? Так вот, как отрисовывать геометрию: каждый блок рисовать по отдельности или создавать один буфер и записывать туда вершины и аттрибуты? каждого уже трансформированного блока то есть если уровень состоит из блоков А B C A, то в буфер записываются сначала все вершины блока А после трансформации, потом пишем вершины блоков В, С и А?
Аноним 12/06/15 Птн 11:55:49 #439 №171731 
>>171723
Первое. Так ты можешь заранее определять, что какая-то часть интерьера в принципе рисовать бессмысленно.
Аноним 12/06/15 Птн 17:01:43 #440 №171751 
>>171731
А вот у таких блоков есть прикол, что два соседствующих ребра двух моделек хоть вроде и имеют одинаковые координаты, на стыке этих двух ребер появляется просвет в виде точечек или небольших отрезков. Как с таким бороться?
Аноним 12/06/15 Птн 18:40:47 #441 №171760 
>>171723
Когда игру-то делать начнешь?
Аноним 12/06/15 Птн 23:17:03 #442 №171778 
>>171760
Уже делаю.
Аноним 17/06/15 Срд 05:25:17 #443 №172300 
Привет. Есть один маленький, но очень важный для меня вопрос. Сейчас я разрабатываю одну игру на пека (с перспективой ее же разработки под iOS и Android), причем ориентирована она больше на сенсорное управление, хотя и мышкой тоже вполне себе нормально будет управляться. С выором языка программирования проблем не возникло. Так как разрабатывать собираюсь и под мобильные платформы чуть позже, предпочел выбрать OpenGL, а не DirectX. Но тут передо мной встал вопрос: а какую его версию использовать? 2., 3. или 4.*? Весь казус в том, что слабенькие видеокарты не поддерживают 4 версию, а некоторые не поддерживают и третью. А на виндопланшеты ставят как раз всякие атомы и, изредка, i3/i5. Как думаете, аноны, под какую все-таки версию OpenGL заточить свою игру?
Аноним 17/06/15 Срд 05:25:56 #444 №172301 
>>172300
2., 3., 4.*
Фикс
Аноним 17/06/15 Срд 05:59:34 #445 №172303 
>>172300
Без заточки. На пека ориентируйся на 3.3, на ES - 2.0
Аноним 17/06/15 Срд 19:02:18 #446 №172385 
>>172303
А будет ли 3.3 работать на виндопланшетах на атоме? Просто я так мельком посмотрел все атомы, и все они вроде бы (я могу ошибаться), не поддерживают 3 версию. Из-за этого я и не могу определиться. Ибо для меня сенсорные устройства все же приоритетнее, да и сама по себе игра не шибко требовательна к графике. Другое дело что я могу ошибаться насчет атомов и поддержки на них версии 3.3
Аноним 18/06/15 Чтв 00:57:10 #447 №172414 
>>172385
Ты смотри что за железо в этих атомах и смотри драйвера к нему.
Аноним 18/06/15 Чтв 03:36:54 #448 №172424 
>>172385
ОГЛ - набор расширений, каждая новая версия добавляет какие-то свои новые расширения. Если, например, использовать только расширения начальной версии ogl 2.0, то приложение будет работать на любой версии. Если использовать расширения, которые не входят в состав начальной версии, то приложение будет на любой версии, в состав которых входят используемые расширения.
Аноним 20/06/15 Суб 01:47:22 #449 №172800 
>>141146
Годнота и с примерами кода.
http://docs.gl
sageАноним 22/06/15 Пнд 21:58:49 #450 №173295 
>>172800
Потом добавим в шапку, спасибо.

офтоп
Бже, сколько же кириллов повсплывало в ГД, я хуею.
Хорошо хотьв уютный ОГЛ тредик не лезут.
sageАноним 23/06/15 Втр 07:24:38 #451 №173339 
14350334787130.jpg
>>173295
Я тут)))0
Просто тут байтоебы тупые хуйней страдают вместо того чтоб игры делать и вообще тут все дохлое и тухлятиной воняет)) Пошел на хуй мамку таою ибал азазаз))0
Аноним OP 23/06/15 Втр 10:20:26 #452 №173348 
>>172800
Таки действительно годнота.

>>173295
Да, но с другой стороны, если бы тут народу было как год назад, то нас бы пидорнули, как остальную тематику.
sageАноним 23/06/15 Втр 13:35:39 #453 №173369 
>>173295
>Хорошо хотьв уютный ОГЛ тредик не лезут.

Невостребованное говно снова мнит себя илиткой?
sageАноним 23/06/15 Втр 19:07:23 #454 №173407 
>>173339
Но ведь байтоебам действительно не место в этом разделе.
Надо поднять вопрос о переселении этих петухов куда-нибудь подальше отсюда, так как их фактическая деятельность к тематике раздела относится чуть более чем совсем никак. Рисование квадратиков и верчение кружочков по полтора года - это не геймдев.
Аноним 24/06/15 Срд 01:07:13 #455 №173443 
>>173348
>пидорнули, как остальную тематику
Падажжи, ебана.

Тоесть основной да-да, основной и единственный тред по АПИ для мобильных устройств пидорнут из /гд? Учитывая что сейчас все уходит в мобильное
Как-то глупо получается.
Аноним 24/06/15 Срд 12:13:41 #456 №173509 
>>173443
Имел в виду, что если бы было мало посещений, то убрали бы доску из списка досок, как многие другие.
Аноним 24/06/15 Срд 12:15:31 #457 №173510 
14351373317940.png
Привет, glАнтоны. Хотел спросить, как лучше хранить меши в бинарниках, чтобы читать их как можно быстрее и проще. Допустим, модель имеет только один материал (т.е. индексы материалов на треугольниках мы в файле не храним).
Первые 2 int в файле это количество вершин и количество треугольников.
Далее подряд идут координаты вершин (по 3 float), за ними нормали (по 3 float), и после них текстурные координаты (по 2 float). После этого идут индексы вершин, образующих треугольники (по 3 int на треугольник).
Нормально ли так делать или можно придумать что-нибудь получше?
Аноним 24/06/15 Срд 15:55:57 #458 №173544 
14351505578700.jpg
>>173510
Зависит от того, как ты биндишь аттрибуты. Если все в один буфер, но локаторы аттрибутов линкуешь через смещения, то оставляй как есть. Если биндишь типы аттрибутов в отдельные буфера, то сначала идут n-значений одного типа аттрибутов, потом другого. Помести в начало заголовка инфу, что этот бинарник хранит меш. Если хочешь еще больше ускорения, то склеивай все меши в один файл, не забыв поместить в заголовок названия каждого меша и смещения головы и хвостов.
Аноним 24/06/15 Срд 15:56:51 #459 №173546 
>>173544
Бля, это кукла картинку прицепила))
Аноним 24/06/15 Срд 16:37:05 #460 №173557 
>>173544
Спасибо, подумаю.
Аноним 26/06/15 Птн 13:11:14 #461 №173806 
>>173544
Для когерентности доступа лусше пихать все в один буфер но не со смещениями, а структурой ( со всеми атрибутами пер обджект).
Аноним 28/06/15 Вск 12:36:15 #462 №174119 
14354841759990.webm
14354841760131.webm
OGL ES. Без теста глубины, с тестом глубины. В чем может быть причина? Z-координаты вершин 0.2 + 0.1n (где n - номер треугольника, 1-4)
Аноним 28/06/15 Вск 13:33:54 #463 №174123 
>>174119
Код давай.
Шейдеры, судя по всему, одинаковые?
Аноним 28/06/15 Вск 14:10:24 #464 №174127 
>>174123
http://pastebin.com/BEt2eTkk
Да.
Аноним 28/06/15 Вск 15:12:01 #465 №174137 
>>174127
>>174119
Кажется разобрался. glClear(GL_DEPTH_BUFFER_BIT) обязательно вызывать при каждой отрисовке кадра?
Аноним 28/06/15 Вск 15:14:16 #466 №174138 
>>174137
Обязательно. Спасибо.
Аноним 28/06/15 Вск 19:20:20 #467 №174177 
>>174137
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
Аноним 05/07/15 Вск 18:06:44 #468 №175349 
Есть какие-нибудь практические ништяки, доступные нубу, из-за которых имеет смысл выбирать OpenGL а не DirectX? Я имею ввиду вроде убер-графона в три строки, или еще чего. Кроссплатформенность не кажется мне таким уж преимуществом.
Аноним 05/07/15 Вск 22:43:12 #469 №175379 
>>175349
Простой апгрейд, кроссплатформенность, именно, что платформы, то есть и мобилы, и пека, и сосноли на мой взгляд, OpenGL проще осваивается, чем DX, да и код выглядит проще. Но под DX больше всяких материалов, учебников там, статей, в сдк кучи примеров.
Аноним 06/07/15 Пнд 16:56:01 #470 №175484 
>>175349
>нубу
Нубу в рендер лезть противопоказанно.
Юзай Анрыло или еще какое двигло, там тебе будет графон за пару строчек.
Аноним 06/07/15 Пнд 19:43:14 #471 №175513 
>>175484
Бля, а если анрыл не сможет в многопользовательность и большой мир? А он сможет, кстати? Ну то есть если это не получится у меня, я хотя бы буду представлять, какие костыли куда поставить. Да и вообще велосипеды - наше все. Я отдаю себе отчет в том что я долбаеб, но все же я всегда мечтал написать игру, а с использованием готового движка это уже как-то не то. Хотя хуй знает. Глядишь закончу институт и там мои амбиции пообрежуться
Аноним 06/07/15 Пнд 23:13:42 #472 №175536 
>>175513
> Бля, а если анрыл не сможет в многопользовательность и большой мир?
А ты сам-то сможешь?
Аноним 08/07/15 Срд 08:06:59 #473 №175670 
>>175513

Какое дело граф-движку до многопользователей и большого мира? Линейка и eve на анреал.
Аноним 19/07/15 Вск 17:59:32 #474 №177544 
Пора подготавливать перекот
Аноним 19/07/15 Вск 18:12:51 #475 №177546 
>>177544
Приходи через пару месяцев.
Аноним 19/07/15 Вск 18:25:17 #476 №177549 
>>177544
>>177546
Недавно наткнулся на один полезный ресурс.
Можно создать что-то вроде каталога линков и разбросать их по категориям.
Да и редактировать удобно.
Выглядеть будет, примерно, вот так: https://papaly.com/alinnert/dMw6/Web-Development
Что думаете по этому поводу?
Аноним 19/07/15 Вск 18:33:34 #477 №177552 
>>177549
>>177546
https://2ch.hk/gd/res/177550.html

Поздно, няши.
Аноним 19/07/15 Вск 18:36:33 #478 №177553 
>>177552
Какой же ты дебил.
Назхуя?
Ещё 20 постов было.
Аноним OP 19/07/15 Вск 18:54:36 #479 №177556 
>>177553
Удваиваю. Ну ладно, перекат так перекат.
Аноним OP 19/07/15 Вск 19:04:42 #480 №177560 
>>177556
Эх, хотел еще линков добавить, а тут такая хуйня. Ну ладно, в тред накидаю.
Аноним 20/07/15 Пнд 08:51:34 #481 №177627 
>>177549
Хипсторство какое-то. Просто длинный список отгоняет нюфаков по-лучше.

Хотя если не лень чому бы нет..
Аноним 25/07/15 Суб 07:52:59 #482 №178431 
Какие из книг в оп-посте про 3D сейчас актуально читать?
Аноним OP 25/07/15 Суб 12:33:49 #483 №178451 
>>178431
Вроде все актуальные должны быть. Сам пока только Game Engine Architecture и Superbible читал, очень годные. На остальные времени не хватает, к сожалению.
Аноним 25/07/15 Суб 16:39:34 #484 №178476 
>>178451
А, збс.
Я собрался начать читать связку OpenGL Red Book + еще что-нибудь. Про архитектуру движков тогда и почитаю
Аноним 15/08/15 Суб 21:04:02 #485 №182491 
Анончик, а LWJGL 3 вообще торт? Когда-то смотрел туториалы чувака Oskar Veerhoek, баловался мелкими проектами. Кто-нибудь вообще использует?
Аноним 16/08/15 Вск 03:09:19 #486 №182586 
Аноны, а что скажете за cogl3d.org? Есть тут эксперты?
Аноним 16/08/15 Вск 09:04:58 #487 №182600 
>>182586
>эксперты
>/gd/
Кармаки вас слушают.
Аноним 17/08/15 Пнд 00:57:56 #488 №182916 
14397622763100.webm
Сделал бампмаппинг.
К успеху пришёл.
Аноним 17/08/15 Пнд 03:07:20 #489 №182925 
>>182916
Крут. Теперь добавь еще 3 кубика и получи 10 фпс.
Аноним 17/08/15 Пнд 05:46:15 #490 №182933 
>>182916
А теперь сделай energy conservation и linear colorspace.
Аноним 17/08/15 Пнд 09:44:19 #491 №182964 
>>182916,
У тебя там фпс плюсуется.
Аноним 17/08/15 Пнд 18:45:50 #492 №183146 
>>182916
Обосрался с фпс.
Аноним 18/08/15 Втр 02:02:48 #493 №183236 
>>183146
>>182964
>>182925
Да, обосрался.
Не обнулял счётчик кадров в конце блока.
Аноним 18/08/15 Втр 08:59:51 #494 №183254 
>>182600
Просто интересно, кто-нибудь тут вращал кубик в Cogl? И как оно? Действительно так легко, как обещают?
Аноним 19/08/15 Срд 15:26:46 #495 №183543 
14399872062510.png
Имеются две точки на плоскости (А и В), центр отрезка, который они образуют является центром новой системы координат. Как определить в ней координаты третьей точки С?
Аноним 19/08/15 Срд 15:37:13 #496 №183545 
>>183543
upd. если бы был бы дан угол поворота относительно центра было бы можно высчитать по формулам:
[code]
x = x0 cos(a) - y0 sin(a);
y = y0 cos(a) + x0 sin(a);
[/code]
но как высчитать этот угол я тоже не знаю, да и должны быть более прямые способы
Аноним 19/08/15 Срд 16:55:00 #497 №183552 
14399925000240.jpg
>>183545
Вот твой угол.
Аноним 19/08/15 Срд 16:56:04 #498 №183554 
14399925646330.jpg
>>183545
Вот твой угол.
Аноним 19/08/15 Срд 16:57:31 #499 №183555 
14399926513590.jpg
>>183545
Вот твой угол.
Аноним 19/08/15 Срд 20:42:35 #500 №183612 
>>183552
Для нахождения тангенса придёться использовать достаточно тяжелый sqrt
>да и должны быть более прямые способы
Аноним 20/08/15 Чтв 00:27:10 #501 №183683 
>>183612
Ты игры хочешь делать, или в оптимизатора играться? Это самый очевидный способ и он хорошо работает. У тебя же не сто мини-карт (или для чего тебе такой фетиш) будет, а всего одна. Не еби гусей, бери что дают, иначе твои поиски грааля на каждом шагу доведут тебя до того, что игоря не будет, а будут вечные поиски. Перфекционизм оставь при себе, будешь надрачивать на него когда займешься оптимизацией УЖЕ ГОТОВОЙ игры.
Аноним 20/08/15 Чтв 07:02:19 #502 №183704 
>>183612
sqrt по производительности равен делению. Если использовать тот трюк из движка первокваки, то он перестаёт быть медленным.
Аноним 20/08/15 Чтв 11:43:03 #503 №183728 
>>183704
Разве? Какой трюк?
Аноним 20/08/15 Чтв 17:42:42 #504 №183839 
>>183728
sqrt.asm
http://www.t-es-t.hu/download/microchip/tb040a.pdf
Аноним 01/10/15 Чтв 20:19:12 #505 №189932 
bmp
Аноним 06/10/15 Втр 14:55:38 #506 №190356 
>>182491
Юзаю, торт
Research paper done  Richardneat 28/10/15 Срд 00:35:09 #507 №193604 DELETED
http://www.gldining.com/writing-thesis-introduction Writing thesis introduction http://www.antennenneworal.com/index.php/career-goal-essay Career goal essay http://wpsymposium.com/thesis-theme-review Thesis theme review http://wpsymposium.com/starting-a-thesis-statement Starting a thesis statement http://www.empowerme.tv/cv-writing-services-london Cv writing services london http://www.churchconvention.de/cc/?p=the-negative-aspects-of-child-beauty-pageants The negative aspects of child beauty pageants http://www.churchconvention.de/cc/?p=essay-about-abortion Essay about abortion http://wpsymposium.com/latex-dissertation-template Latex dissertation template http://wpsymposium.com/search-dissertations Search dissertations http://www.gldining.com/pablo-picasso-essay Pablo picasso essay http://www.antennenneworal.com/index.php/phd-thesis-length Phd thesis length http://wpsymposium.com/thesis-statement-format Thesis statement format http://www.empowerme.tv/best-essay-proofreading-service Best essay proofreading service http://www.empowerme.tv/research-proposal-engineering Research proposal engineering http://www.churchconvention.de/cc/?p=five-w's-essay-writing Five w's essay writing http://www.gldining.com/best-research-proposal Best research proposal http://www.gldining.com/how-to-write-a-written-report How to write a written report http://www.churchconvention.de/cc/?p=against-gay-marriage-essay Against gay marriage essay http://www.empowerme.tv/research-paper-headings Research paper headings http://www.empowerme.tv/one-page-research-proposal One page research proposal http://www.antennenneworal.com/index.php/diabetes-research-papers Diabetes research papers
comments powered by Disqus

Отзывы и предложения