Programming and Animation
Programming and animation ideas, articles, tutors, scripts, plugins in the 3d-
GLSL шейдеры: NVidia и AMD
Дата: Май 29th, 2010 Neill Комментариев нетИз личного опыта работы с шейдерами и адаптацией под AMD.
Именно адаптацией, потому что по другому этот процесс не назовешь после их создания под NVidia.
1) AMD не любит ARB_draw_buffers флаг в шейдере. Причем если не указывать никакой флаг вовсе, шейдер компилируется без проблем. А вот NVidia выдает мне предупреждение, что необходимо включать MRT с помощью данного флага.
Когда на Cg шейдеры, там отдельная песня, нужен флаг ATI_draw_buffers
http://developer.nvidia.com/forums/index.php?showtopic=2572
http://developer.nvidia.com/forums/index.php?showtopic=2703&st=0&gopid=7686&#entry7686
http://www.gpgpu.org/forums/viewtopic.php?t=4161
2) AMD ругается на наличие sampler2DRect и sampler2D в одном шейдере. Тоже из разряда «не обращать внимание».
http://www.pouet.net/topic.php?which=5788
Графика, Разное GLSL, OpenGL, shaders, Tips -
Моя первая публикация
Дата: Февраль 26th, 2010 Neill Комментариев нет[lang_en]This article is not avaliable in english.[/lang_en]
Недавно нашел у себя на компьютере весьма памятный мне материал – текст брошюры, которая продавалась в моем городе на рынке в книжной лавке. Это был октябрь 2000 года и мне тогда было 14 лет отроду.
Материал был написан на основе своего опыта работы с библиотекой OpenGL и разработкой проекта «Автомобиль в движении». Как это всё было тогда наивно, но по своему загадочно и величественно на то время. В общем это было начало начал так сказать.
Программирование, Графика Delphi, OpenGL -
OpenGL вне зависимости от платформы или SDL
Дата: Февраль 26th, 2010 Neill Комментариев нет[lang_en]This article is avaliable only in russian.[/lang_en]
В виду того, что статья OpenGL для Win32 пользуется популярностью, я решил выложить еще несколько глав из когда-то намечавшейся книги по OpenGL и компьютерной графике. Материал еще имеет определенную актуальность, особенно для начинающих.
OpenGL – открытая графическая библиотека для работы с двухмерной и трехмерной графикой. Главной особенностью можно считать то, что она поддерживается практически всеми операцинными системами. Тем самым давая возможность обладателям Windows, Linux, MacOs и др. операционных систем творить свои трехмерные шедевры, в отличие от DirectX, который написан только под Windows. Однако в каждой операцинной системе инициализация OpenGL проводится по своему. Я мог бы конечно рассказать вам об этом, но главная цель моей книги – это показать новые возможности OpenGL с использованием современных видеокарт, поэтому для инициализации мы будем использовать библиотеку SDL. Это кросс платформенный мультимедийный API или иными словами, с помощью этой библиотеки мы сможем, будь-то Windows, Linux или MacOS, работать с графикой, клавиатурой и мышкой, таймером, событиями и т.д. Так что изучение OpenGL не будет зависеть от выбора операционной системы.
Для начала ознакомимся с этой библиотекой и её возможностями. Я расскажу только о том, что нам потребуется в дальнейшей работе.
Программирование, Графика OpenGL, SDL -
Заметки к GLSL шейдерам и их совместимости
Дата: Ноябрь 9th, 2009 Neill Комментариев нетВ ходе работы с шейдерами возникли следующие полезные заметки по совместимости:
1) #version 120 – строка с указанием версии шейдера должна быть самой первой в коде, иначе ATI ругается при компиляции. У меня такая ошибка появилась в результате сборки шейдера из частей.
2) старые ATI и большинство карт INTEL не поддерживают glsl шейдеры, вместо этого у них есть расширения только GL_ARB_VERTEX_PROGRAM, GL_ARB_FRAGMENT_PROGRAM. Выход здесь есть и весьма лаконичный – скачать библиотеку CG от NVidia и перекомпилировать шейдеры в arb программы.
Например: cgc -glsl shader.glsl -profile arbvp1 -o vertex.vp
В данном случае профиль arbvp1 для вершинных программ, а arbfp1 – для фрагментных.
3) В появлением glsl шейдеров, команда glGetString дополнилась новым возможным аргументом GL_SHADING_LANGUAGE_VERSION, который возвращает версию glsl шейдера.
4) У NVidia есть весьма полезная утилита ShaderPerf – анализ шейдера на количество инструкций и скорость выполнения, а также прогонка выполнения шейдера под разные видеокарты и семейства графических чипсетов NVidia. Имеется также возможность сравнить выполнение двух разных шейдеров между собой.
5) не следует указывать вещественные числа с f в конце как 1.0f, достаточно просто написать 1.0. Также ATI очень привередливы к указанию вещественного числа без дробной части.
6) Полезная утилита OpenGL Extension Viewer с базой данных по поддерживаемым расширением для большинства видеокарт. http://www.realtech-vr.com/glview/
Программирование, Графика GLSL, OpenGL, Tips -
GLSL ошибка – pre-mature EOF
Дата: Сентябрь 25th, 2009 Neill Комментариев нетНа ATI видео картах шейдеры отказываются компилироваться ссылаясь на данную ошибку. Причина – комментарии на русском языке.
Программирование, Графика GLSL, OpenGL, Tips



Свежие комментарии