К основному контенту

Релиз OpenGL 4.6


Уже все думали, что OpenGL умер, ну или погружается в сон, а вот и выстрелило))

В ядро были включены следующие расширения:
  • GL_ARB_indirect_parameters
  • GL_ARB_pipeline_statistics_query
  • GL_ARB_polygon_offset_clamp 
  • GL_KHR_no_error - позволяет отключать код проверки ошибок
  • GL_ARB_shader_atomic_counter_ops - атомарные счётчики
  • GL_ARB_shader_draw_parameters
  • GL_ARB_shader_group_vote
  • GL_ARB_gl_spirv - использование SPIR-V в OpenGL
  • GL_ARB_spirv_extensions
  • GL_ARB_texture_filter_anisotropic - анизотропная фильтрация для текстур
  • GL_ARB_transform_feedback_overflow_query
Так же добавили расширений :
  • GL_KHR_parallel_shader_compile
  • WGL_ARB_create_context_no_error
  • GXL_ARB_create_context_no_error

NVIDIA уже представила бета версию драйвера, с поддержкой новой версии OpenGL 4.6, по ходу дела - nvidia пытается воскресить opengl, ну или хотя бы продлить его существование... Многие уже пытались поставить крест на этом графическом API, но миллионы пользователей не спешат покупать новейшие видеокарты, и Вулкан им не доступен, а значит и разработчики не спешат делать ставку на новое API...



Комментарии

Популярные сообщения из этого блога

Ray marching и не только

Давненько я не баловался фракталами, а руки что-то чешутся... Видимо пора сотворить что-то и поделиться с миром ) Но всё меняется, вернее давно поменялось, фракталы уже давно рисуются шейдерами, как правило фрагментными. И то что я когда то делал (ковёр Серпинского, остора Коха и другое - на основе линий) - увы, уже не впечатляет ;) Скрины 3d фракталов впечатляют и завораживают, глядя на некоторые даже не верится, что их сотворил алгоритм. Для визуализации поверхности, которая не определена полигонами, мы попробуем использовать ray marching (raymarching, марширующий луч, марш луча, ну в общем за точность перевода не ручаюсь), а результат думаю скоро сами увидим )) Важно заметить, что эта техника используется не только для рисования фракталов. И так, в чём же суть? Всё очень просто.  Допустим у нас есть, некая поверхность, точка наблюдателя (позиция камеры, глаза), есть луч, направленный из позиции наблюдателя. Теперь мы начинаем продвигаться по лучу (маршировать). На каждом ша

Замеряем скорость выполнения команд OpenGL

Самый простой вариант, это обозначить тестируемый блок команд вызовами  glBeginQuery (GL_TIME_ELAPSED, id)   и    glEndQuery (GL_TIME_ELAPSED) . Результат получаем командой  glGetQueryObjectui64v или  glGetQueryObjectuiv , в зависимости от разрядности счётчика, 32 бит может и не хватить (в наносекундах, как никак). Важное замечание, что за меряется только только затраченное на выполнение команд OpenGL. Вариант №1: GLuint id; GLuint64 elapsedTime; glGenQueries( 1 , &id ); // Начало блока glBeginQuery(GL_TIME_ELAPSED, id); //Тут пишем код, который надо проверить //Окончание проверяемого блока glEndQuery(GL_TIME_ELAPSED); // Тут могут быть другие команды OpenGL, скорость которых не надо замерять // получаем затраченное время в наносекундах glGetQueryObjectui64v(id, GL_QUERY_RESULT, & elapsedTime); Вариант №2: GLuint queryStart, queryEnd; // query id GLuint64 startTime, endTime; GLuint64 elapsedTime; // затраченное время в наносе