Эта программа демонстрирует, как создать и выполнить список отображения. В аттаче исходный файл, курсор и ехе
OpenGL работает невероятно быстро! 1000 точек перерисовываются за долю секунды! --- Сообщение объединено, 4 май 2020 --- К вечеру щенячий восторг прошёл. Конечно же, кадр перерисовывается из буфера, а 1000 точек можно было бы строить и побыстрее, если считать всё в XMM, а не тратить время на память и сопроцессор. Но как бы там ни было, старый добрый OpenGL весьма хорош.
ml64, к сожалению SieveGLx87 у меня не работает, так как мой Intel Core i3-3210 не поддерживает инструкцию rdrand, хорошо бы эту инструкцию заменить на программную генерацию случайных чисел. А что программа должна была вывести на экран? Небо в звездах?
Там был фрактал. Давно я собирался выводить фракталы без всяких там SetPixel и PatBlt. У меня с 2005 года пылятся ниасиленные книги по OpenGL и DirectX. А тут есть возможность! Есть наглядные примеры! На привычном языке! Прикладываю обновлённую версию пирамиды Серпинского. Вместо rdrand взял CryptGenRandom. Можно было бы RtlRandom, но мы же не ищем лёгких путей! Мысли на будущее: если floating-аргументы передаются черех XMM, то и считать фрактал правильным будет с помощью SSE/AVX/FMA. Возможно, когда-нибудь я сделаю современный фрактал...
В аттаче исходный файл, курсор и ехе. Вращение источника света вокруг тора. Нажатие на левую кнопку мыши добавляет к положению источника света 30 градусов, нажатие на правую отнимает 30 градусов
В аттаче исходный файл, курсор и ехе. То ли планетарная система, то ли модель атома углерода Ядро вращается вокруг своей оси, а вращающиеся электроны крутятся вокруг ядра
Создание списка отображения. тор поворачивается вокруг оси X, при нажатии на «x» или «X»; поворачивается вокруг оси y, при нажатии на «y» или «Y»; нажатие на «i» или «I» возвращает тор в исходное состояние. Прототип torus.c из https://www.opengl.org/archives/resources/code/samples/redbook/ в аттаче asm-файл, курсор и exe-файл.
программа рисует 5 красных шаров, каждый на разном Z-расстоянии от наблюдателя, с разными типами тумана. Нажатие на «F» или «f» переключает между 3 типами тумана: экспоненциальный (GL_EXP), экспоненциальный в квадрате (GL_EXP2) и линейный (GL_LINEAR) В программе фиксированное значение тумана, а также фиксированные начальные и конечные значения для линейных значений тумана. Прототип ― файл fog.c из https://www.opengl.org/archives/resources/code/samples/redbook/ во вложении asm-файле, курсоре и exe-файле.