Перейти к содержимому


Свернуть чат Чат Открыть чат во всплывающем окне

lz : (2 недель назад) Оно там просто всё вместе лежит.
Folgen : (2 недель назад) Даже сам Товарищ Майор не нашел бы.
Folgen : (2 недель назад) Ого, ребусы.
lz : (2 недель назад) Я там постоянно.
lz : (2 недель назад) Можно початиться в реалтайме в телеге - https://t.me/joincha...j5MKUrxakTyCPwQ
lz : (2 недель назад) Тулзы качаются программой bootstrap_tools из бутстраппера (как скачать - у меня в подписи). Если хочется самим собирать, отпишитесь ещё, я инструкции по сборке допишу.
PA3UJIb : (2 недель назад) по ходу это из LLVM
PA3UJIb : (2 недель назад) cmake скрипты недописаны. А заголовочники сначала подумал, что из boost, но и там такого не нашел
Folgen : (2 недель назад) У меня вообще фигня с СиМэйк. Я уж подумал ну его. А там хедеры нужны от Полигона4.
Folgen : (2 недель назад) Вот-вот!
PA3UJIb : (2 недель назад) Не знаю, я не смог его "tools" собрать - многих заголовочных нету и хз где их брать.
Гость : (3 недель назад) У кого-нибудь есть полный пак инструментария от lz?
Yakim (Watco... : (14 Июль 2018 - 00:06) :D
Yakim (Watco... : (14 Июль 2018 - 00:06) nope
Yandersen : (13 Июль 2018 - 22:07) Айаяй. Поди Якимко заспамил чат стикерами. :)
Yandersen : (13 Июль 2018 - 22:06) Да лан, тут каждый день кто-нить из админов заглядывает. Как пропустили?
Nextovoy : (13 Июль 2018 - 01:04) Я писал
Гость : (10 Июль 2018 - 22:42) Сорьки, что так у нас. Чего три года так и не попытался в чат писнуть? :)
Nextovoy : (06 Июль 2018 - 16:15) Спасибо
lz : (04 Июль 2018 - 19:44) Активировал.
Гость : (03 Июль 2018 - 16:30) Активируйте его.
Гость : (03 Июль 2018 - 16:30) Мой профиль - Nextovoy
Гость : (03 Июль 2018 - 16:25) Написать в чат. Профиль в ручную админы активируют.
Гость : (03 Июль 2018 - 15:47) Ох уж эта дурацкая привычка писать всё раздельно засоряя чат. Это всё классно, конечно, но ребята, одменестраторы, так называемые. Третий год пытаюсь зарегистрироваться (буквально, третий) на этом форуме, но ПИСЬМО С ПОДТВЕРЖДЕНИЕМ НА ПОЧТУ ТАК И НЕ ПРИХОДИТ. Что делать?
Гость : (03 Июль 2018 - 15:46) Перешёл я всё же по ссылке Redoctor'a...
Гость : (03 Июль 2018 - 15:41) Пора уже M4
Гость : (29 Июнь 2018 - 00:18) итак м3
lz : (28 Июнь 2018 - 16:01) Мы тебе и тут передадим.
Гость : (28 Июнь 2018 - 13:13) Зачем в телеграмме делать?!Я вот например не могу зайти,написать в чат,подписаться и не только у меня это.
Redoctor : (24 Июнь 2018 - 19:35) https://vk.com/away....0_23001&cc_key=
Redoctor : (24 Июнь 2018 - 19:34) Тогда в телеграмме в поисковике набери Механоиды 3
Гость : (24 Июнь 2018 - 19:05) Не открывается.
Redoctor : (24 Июнь 2018 - 18:00) https://t.me/mechanoids3 Для тех кто в танке.
Yakim (Watco... : (15 Июнь 2018 - 01:33) КРУЗИИИС!!!11

Изображение
lz : (15 Июнь 2018 - 00:09) КРУЗИС!
lz : (15 Июнь 2018 - 00:09) ЗИС
lz : (15 Июнь 2018 - 00:09) КРУ
Yakim (Watco... : (14 Июнь 2018 - 14:50) Крузис и Королева тоже не в моем вкусе, а проигрывать нечего =D
lz : (14 Июнь 2018 - 13:55) Конечно, полюбить - так королеву, проиграть - так миллион, сделать - так крузис.
smt005 : (14 Июнь 2018 - 00:22) И от третьего лица тоже можно сделать простенькую игру. Простая игра это лучше чем ничего.
smt005 : (14 Июнь 2018 - 00:21) А, ты хочеш что-бы хит был, с "Crysis" графоном и контентом на 100500 часов игры?
Yakim (Watco... : (14 Июнь 2018 - 00:18) Ни топдовншутеры, ни стратежки)
Yakim (Watco... : (14 Июнь 2018 - 00:15) Не, спасибо, не в моем вкусе=)
smt005 : (13 Июнь 2018 - 23:13) Помнится за пару недель от скуки сделал. Делал по вечерам.
smt005 : (13 Июнь 2018 - 23:13)

Фотография
- - - - -

[GLSL.hpp] - векторная математика как в GLSL

OpenGL GLSL vector vec2 vec3 vec4

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 3

#1 OFFLINE   Yandersen

Yandersen

    Диванный теоретик

  • Админ
  • 454 сообщений
  • Откуда:Canada
  • Настоящее имя:Ян

Отправлено 07 Декабрь 2014 - 01:40

Векторная математика, максимально приближённая к OpenGL Shading Language (GLSL):
 
GLSL.hpp
 
Хеадер содержит базовые классы наподобие GLSL'евских (bvec2, vec3, ivec4, mat3, dmat4...) и операторы для них, а также написанные на ассемблере GLSL-функции (dot, cross, length, normalize, sin, sqrt, abs, mod, tanh, imulExtended, inverse, round, packHalf2x16 и пр.).
GLSL.hpp является однофайловой альтернативой известной библиотеки glm. Также как и в glm, тут упор сделан на максимальное соответствие синтаксиса официальной GLSL документации, однако есть несколько упрощений. В GLSL.hpp нет поддержки half-векторов, а выделение субкомпонентов вектора при свиззлинге выглядит как вызов функции:

vec3 veca(0), vecb(1.f, 2.f, 3.f);
veca.yz() = vecb.zx(); //In GLSL and glm it will look like "veca.yz = vecb.xz;"

Само собой разумеется, в GLSL.hpp нет самплеров, функций работы с ними и пр. элементов GLSL, специфичных для кода шейдеров. Всё остальное есть.

 

Среди функций GLSL часть применима не только к векторам, но и НЕвекторным типам данных (функции типа sqrt, pow и пр.). Чтобы избежать конфликта имён с фукциями стандартной библиотеки math.h эти функции скрыты под неймспейсом "GLSL". Доступиться до них можно так:

#include "GLSL.hpp"
#include <math.h>
//...
float x;
float y = GLSL::sqrt(x);  //sqrt() function from GLSL.hpp is used
float z = sqrt(x);        //sqrt() function from math.h is used
//...
vec2 u;
vec2 v = sqrt(u); //Vector functions do not require namespace selection

Если инструментария GLSL Вам достаточно и math.h подключать нет желания, можно сделать так:

#include "GLSL.hpp"
using namespace GLSL; //Will conflict if <math.h> included as well
//...
float x;
float y = sqrt(x);  //sqrt() function from GLSL.hpp is used

Напоследок добавлю, что в некоторых написанных на ассемблере функциях использованы команды SSE4.1. Это ставит соответствующие требования к компиллятору, жующему GLSL.hpp, а также процессору, грызущему полученный ехе-шник (SSE4.1 начались с Intel Core).



#2 OFFLINE   Yandersen

Yandersen

    Диванный теоретик

  • Админ
  • 454 сообщений
  • Откуда:Canada
  • Настоящее имя:Ян

Отправлено 07 Январь 2015 - 23:25

Передрал с GLSL всю векторную математику. Единственное отличие в том, что выделение свиззлнутых субкомпонентов вектора выглядит не как в оригинале "MyVec.xwzz" а со скобочками на конце: "MyVec.xwzz()". В остальном всё так же (названия классов, функций, работа операторов).

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

Все функции описаны на ассемблере; операторы - пока что нет (инлайнами).

 

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



#3 OFFLINE   Yandersen

Yandersen

    Диванный теоретик

  • Админ
  • 454 сообщений
  • Откуда:Canada
  • Настоящее имя:Ян

Отправлено 12 Январь 2015 - 07:23

Добавил невекторные варианты ГЛСЛевских функций. Чтобы не конфликтовали со стандартными функциями из библиотеки math.h, скрыл ГЛСЛевские варианты под неймспейсом GLSL. Подробнее в первом посте.



#4 OFFLINE   Yandersen

Yandersen

    Диванный теоретик

  • Админ
  • 454 сообщений
  • Откуда:Canada
  • Настоящее имя:Ян

Отправлено 21 Январь 2015 - 22:10

Расширил поддержку dvecn векторов - в оригинальном GLSL4.5 некоторые функции определены лишь для vecn векторов (sin, cos, exp и пр.), но я решил, что нет смысла в таком ограничении, так что всё, что применимо к vecn теперь имеет аналог и для dvecn.







Темы с аналогичным тегами OpenGL, GLSL, vector, vec2, vec3, vec4

Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных