1. Друзья, в это тяжёлое и непонятное для всех нас время мы просим вас воздержаться от любых упоминаний политики на форуме, - этим ситуации не поможешь, а только возникнут ненужные ссоры и обиды. Это касается также шуток и юмора на тему конфликта. Пусть войны будут только виртуальными, а политики решают разногласия дипломатическим путём. С уважением, администрация Old-Games.RU.

    Скрыть объявление
  2. Если Вы видите это сообщение, значит, вы ещё не зарегистрировались на нашем форуме.

    Зарегистрируйтесь, если вы хотите принять участие в обсуждениях. Перед регистрацией примите к сведению:
    1. Не регистрируйтесь с никами типа asdfdadhgd, 354621 и тому подобными, не несущими смысловой нагрузки (ник должен быть читаемым!): такие пользователи будут сразу заблокированы!
    2. Не регистрируйте больше одной учётной записи. Если у вас возникли проблемы при регистрации, то вы можете воспользоваться формой обратной связи внизу страницы.
    3. Регистрируйтесь с реально существующими E-mail адресами, иначе вы не сможете завершить регистрацию.
    4. Обязательно ознакомьтесь с правилами поведения на нашем форуме, чтобы избежать дальнейших конфликтов и непонимания.
    С уважением, администрация форума Old-Games.RU
    Скрыть объявление

ARB 2.0

  1. Освоил ARB в idTech4 с помощью заметок Тревора Хогана, вытащенных из wayback machine, и книг по DirectX. После чего понял, что на самом деле сабж основан на OpenGL. Забавно.

    Фактически, это простенький ассемблер для GPU. Сложность заключается в понимании тех преобразований, которые он выполняет с входными данными.

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

    Предположения:

    Формат данных - float4 (4 числа с плавающей запятой), нативный формат для GPU. Меньшая разрядность (float1,2,3) расширяется до float4.

    Для вершинной программы (VP) входные данные - атрибуты ( ATTRIB ) вершины, получаемые с помощью vertex.[attrib] (чаще всего, это координаты вершины или vertex.position). Преобразования с ними осуществляются с помощью матриц преобразования, доступ к которым VP может получить через состояния OpenGL state.matrix., задаваемые в качестве параметров-констант (PARAM). Для промежуточных вычислений используются временные переменные (TEMP), доступные как для чтения, так и для записи.

    Фрагментные программы (FP) получают доступ к данным, обработанным VP (их работа вторична), и используются для вычисления цвета конкретного пиксела. Грубо говоря, это раскраска треугольников, из которых состоят трехмерные объекты, с учетом их положения в трехмерной сцене, параметров окружения, освещения, текстур. Вычисления связаны, как правило, с преобразованием цвета пиксела путем сопоставления ему соответствующего тексела текстуры (текстур).



    Смысл всего - проекция трехмерной сцены с правильно расставленными, освещенными и текстурированными объектами в плоскость экрана.

    Заметки на полях:

    источник

    fragmentProgram <prog> Use an ARB fragment program with this stage

    vertexProgram <prog> Use an ARB vertex program with this stage program <prog> Shortcut for:

    fragmentProgram <prog>
    vertexProgram <prog>


    vertexParm <index> <exp0> [,exp1] [,exp2] [,exp3] Values to pass to the vertex program. One expression gets repeated across all 4 values. Two expressions put 0, 1 in z, w. Three expressions put 1 in w.

    fragmentMap <index> [options] <map> The image map to use for texture unit <index>. [options] can be cubeMap, cameraCubeMap, nearest, linear, clamp, noclamp, zeroclamp, alphazeroclamp, forceHighQuality, uncompressed, highquality, or nopicmip

    источник


    З.Ы. Doom3 написан на C++ и использует OpenGL API версии 1.1 (1.4?) с расширениями.

    Теги: steps3D, state.matrix.mvp, F.Luna, origin, dot product, TEXCOORD.

    См. также Сент-Лаурент, Шейдеры для программистов и художников (марево).

Комментарии

Чтобы оставить комментарий просто зарегистрируйтесь и станьте участником!
  1. На этом сайте используются файлы cookie, чтобы персонализировать содержимое, хранить Ваши предпочтения и держать Вас авторизованным в системе, если Вы зарегистрировались.
    Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление