
A.D.
22.06.2018
18:05:19

Vladislav
22.06.2018
18:05:29

Vhäldemar
22.06.2018
18:06:25
ffff?

Anatoly
22.06.2018
18:06:28

Google

Vladislav
22.06.2018
18:06:34
поэтому правильный ответ - implementation defined ?

Constantine
22.06.2018
18:09:13

Vladislav
22.06.2018
18:09:18
~
[cling]$ ~uint16_t(0)
(int) -1

Constantine
22.06.2018
18:11:19

Anatoly
22.06.2018
18:48:06
:)))

Stanislav
22.06.2018
18:50:25
ахаха

Antony
22.06.2018
19:35:58
Я на фотке как всегда плохо получился :)

Крис
22.06.2018
19:38:52
Кто-то реализовывал двулучевую функцию отражательной способности Кука-Торренса на GLSL?
не могу понять, как собрать все это воедино

Anatoly
22.06.2018
19:40:20

Vhäldemar
22.06.2018
19:41:17

Google

Крис
22.06.2018
19:41:44

Vhäldemar
22.06.2018
19:42:45

Крис
22.06.2018
19:43:21
Тут скорее трудности с написанием алгоритма на С-подобном языке
Конкретно на языке шейдеров OpenGL

Alexey
22.06.2018
19:47:55

Poligraph
22.06.2018
19:51:02

Matwey
22.06.2018
19:52:07
t.me/prographon
Очень рекомендую. Там самая милая публика во всем телеграмме.


Крис
22.06.2018
20:00:03
Если коротко, двулучевая функция отражательной способности, это функция которая принимает в качестве параметров, исходный свет(его направление), исходящее направление(угол между нормалью освещаемой поверхности и лучом исходящим из положения наблюдателя к точке к которой напрявляется исходящее освещение), матрицу нормальных векторов для спроэцированого обьекта на плоскость(его развертки, если точнее) и параметр а, специфический для материала поверхности, на который падает свет, который определяет "шершавость(неровность)" материала(усредненно). Эта функция должна количественно ценить влияние каждого конкретного луча на конечный отраженный от поверхности свет. Если наша поверхность идеально ровная, функция должна вернуть 0. По сути нам нужно оценить свойства отражение и рефракции поверхности, основываясь на предположении, что поверхность тела является не однородной стенкой, а множеством кругов(для упрощения скажем, что это молекулы). Для того что бы функция была хоть как-то физически обоснована, она должна расчитыватся исходя из законов сохранений(энергии, импульса(закон сохранения момента импульсов нам не нужен, его игнорируем)). Лучше всего нам подходится аппроксимизация Кука-Торренса. И я не совсем понимаю как же реализовать это дело на шейдерах
Извините, за немного длинное сообщение
И, быть может, за не строгие определения, попытался обьяснить суть как можно проще


Vhäldemar
22.06.2018
20:05:36
Если коротко, двулучевая функция отражательной способности, это функция которая принимает в качестве параметров, исходный свет(его направление), исходящее направление(угол между нормалью освещаемой поверхности и лучом исходящим из положения наблюдателя к точке к которой напрявляется исходящее освещение), матрицу нормальных векторов для спроэцированого обьекта на плоскость(его развертки, если точнее) и параметр а, специфический для материала поверхности, на который падает свет, который определяет "шершавость(неровность)" материала(усредненно). Эта функция должна количественно ценить влияние каждого конкретного луча на конечный отраженный от поверхности свет. Если наша поверхность идеально ровная, функция должна вернуть 0. По сути нам нужно оценить свойства отражение и рефракции поверхности, основываясь на предположении, что поверхность тела является не однородной стенкой, а множеством кругов(для упрощения скажем, что это молекулы). Для того что бы функция была хоть как-то физически обоснована, она должна расчитыватся исходя из законов сохранений(энергии, импульса(закон сохранения момента импульсов нам не нужен, его игнорируем)). Лучше всего нам подходится аппроксимизация Кука-Торренса. И я не совсем понимаю как же реализовать это дело на шейдерах
поискать код, переписать на шейдэр
https://github.com/pboechat/cook_torrance
чем не подходит?


Alex Фэils?︙
22.06.2018
21:44:28

Лермонтов~
23.06.2018
00:11:14
Ребят, стоит ли плюсы выбирать как первый язык программирования?

Stanislav
23.06.2018
00:13:26

Vladislav
23.06.2018
00:18:32

Google

Alex Фэils?︙
23.06.2018
00:33:45

Xessao
23.06.2018
00:35:57

PRoSToC0der
23.06.2018
00:38:59
@antoshkka можешь ли скинуть слайды с презентации по copy elision?

Alex Фэils?︙
23.06.2018
00:39:34
мне было бы интересно почитать лог нашего голосования)

PRoSToC0der
23.06.2018
02:26:56
есть мысль по поводу <=>: может ли наличие двух нулей на машинах с обратным и прямым кодом нарушить strong_ordering для integer типов?

Андрей
23.06.2018
04:22:37
Парни проект в каком направлении написать чтобы обмазаться спецификой c++ просто нужно попрактиковаться с управлением памятью

Konstantin
23.06.2018
04:35:38
Напиши аналог valgrind например

Nik
23.06.2018
05:13:41

Antony
23.06.2018
05:41:50

yuri
23.06.2018
07:38:12
Я хотел попрактиковаться в GLSL и С++, начал пилить проект на базе гугловского ANGLE. А в нем самом утечек немеряно. Есть мысль взять "С++17 Cookbook" и каждый пример скомпиллировать.

Pavel
23.06.2018
08:21:50
В чем сокральный смысл писать ключевое слово override для деструкторов?

Anatoly
23.06.2018
08:23:18

Pavel
23.06.2018
08:25:03
Деструктор отличается от обычной виртуальной функции, ub не будет?

Anatoly
23.06.2018
08:26:18

Igor
23.06.2018
08:36:47

Pavel
23.06.2018
08:36:59

yuri
23.06.2018
08:43:10
"override was added mainly to help avoid bugs from spelling mistakes when writing virtual functions. I am yet to see misspelled destructor pass compilation."
Неужели эти люди не сталкивались с ошибкой, когда деструкторы объявлены без virtual. Рука-лицо.

Anatoly
23.06.2018
08:49:41

Admin
ERROR: S client not available

Anatoly
23.06.2018
08:54:51
В любом случае, override в деструкторе говорит о том, что ты понимаешь контракт класса, предполагающий полиморфное удаление через базу.

Google

Igor
23.06.2018
09:01:11

yuri
23.06.2018
09:02:52
Не согласен. Если наследованный класс без виртуального деструктора, то это утечки памяти и возможно других ресурсов.

Igor
23.06.2018
09:08:35

Mikhail Voronov
23.06.2018
09:09:23
ещё интересно, кто какой вариант использует из virtual + override или просто override у переопределённых виртуальных методов

yuri
23.06.2018
09:10:16
На моей памяти такого не случалось, чтобы базовый деструктор вдруг стал невиртуальным. А вот когда решают унаследовать класс с невиртуальным деструктором и ничего не меняют — такое было часто.

Anatoly
23.06.2018
09:10:29

yuri
23.06.2018
09:11:39
Это детали.

Anatoly
23.06.2018
09:11:59
Ты не платишь за то, что не использушь.

Mikhail Voronov
23.06.2018
09:20:39
так как-то нагляднее

Igor
23.06.2018
09:26:38
+1
Как-то совсем избыточно, зачем добавлять virtual если override и так это гарантирует?

Anatoly
23.06.2018
09:27:26

Mikhail Voronov
23.06.2018
09:27:59

Igor
23.06.2018
09:42:27

Anatoly
23.06.2018
09:47:46
хотя, конечно, отсутствие виртуальное деструктора в приведенном примере - игра на грани фола.

Igor
23.06.2018
09:50:24

Anatoly
23.06.2018
09:50:56
+1

Google

yuri
23.06.2018
10:04:04

Vhäldemar
23.06.2018
10:52:12

yuri
23.06.2018
10:54:10
w4?
Тоже без ворнингов. https://pastebin.com/Qxe9tvLr

Vhäldemar
23.06.2018
10:59:47
а что гцц?

yuri
23.06.2018
11:03:03
clang на dogbolt тоже без ворнингов, и тоже вызывает ~A() в листинге.
а, не, там gcc