@ProCxx

Страница 2153 из 2477
Vladislav
22.06.2018
18:05:29
0xFF?
нет

Vhäldemar
22.06.2018
18:06:25
ffff?

Anatoly
22.06.2018
18:06:28
Господа, загадка: чему равно ~uint16_t(0) >> 8 и почему?
Интегральное продвижение до инт?

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

Constantine
22.06.2018
18:09:13
поэтому правильный ответ - implementation defined ?
это пушо 8 интовая или пушо ~ сразу до инта кастит?

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
Кто-то реализовывал двулучевую функцию отражательной способности Кука-Торренса на GLSL?
что-то орнул даже, в пятницу вечером и такой заход, ссразу с козырей

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
Кто-то реализовывал двулучевую функцию отражательной способности Кука-Торренса на GLSL?
ох, какая знатная наркомания, можно спросить в про.графоне. я вроде когда-то писал эти шейдеры освещения, но уже не помню

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

Vladislav
23.06.2018
00:18:32
Google
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 например

Antony
23.06.2018
05:41:50
@antoshkka можешь ли скинуть слайды с презентации по copy elision?
Выложу на свой сайтик на след неделе До того момента буду не у компа :(

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
В чем сокральный смысл писать ключевое слово override для деструкторов?
Самодокументирумость кода. Что виртуальная функция объявлены выше по иерархии, а не вводится на этом уровне.

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

Anatoly
23.06.2018
08:26:18
Деструктор отличается от обычной виртуальной функции, ub не будет?
Деструктор не отличается от обычной виртуальной функции. Откуда здесь уб.

Igor
23.06.2018
08:36:47
Деструктор не отличается от обычной виртуальной функции. Откуда здесь уб.
Для деструкторов core guidelines не рекомендуют override - https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#Rh-override. https://github.com/isocpp/CppCoreGuidelines/issues/721 - тут обсуждение. Я лично за override на деструкторах.

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. Рука-лицо.

Admin
ERROR: S client not available

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

Google
Igor
23.06.2018
09:01:11
"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. Рука-лицо.
Логика такая - единственное чем здесь поможет override это если вдруг базовый деструктор стал невиртуальным, и твой деструктор без virtual и override. Ну если ты сделал базовый деструктор невиртуальным, проверь что это безопасная операция.

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

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
Как-то совсем избыточно, зачем добавлять virtual если override и так это гарантирует?
мне так визуально лучше воспринимается - но это исключительно дело привычки)

Igor
23.06.2018
09:42:27
На моей памяти такого не случалось, чтобы базовый деструктор вдруг стал невиртуальным. А вот когда решают унаследовать класс с невиртуальным деструктором и ничего не меняют — такое было часто.
Проблема в этом случае в базовом классе а не в унаследованном. Если класс полиморфный, не final, и в нем публичный невиртуальный деструктор - то это ошибка дизайна. Могу порекомендовать использовать какую-нибудь умную ide или анализатор кода, они помогут в работе с такими разработчиками :)

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

Igor
23.06.2018
09:50:24
но при этом, если не предусмотрено полиморфное удаление, то и проблемы нет. struct foo { void boo() {doboo();} private: virtual void doboo() = 0; }; void callboo(foo& f){f.boo();} struct der : foo { private: virtual void doboo() override { /// } ... der d; callboo(d);
Мне кажется в этом случае есть оно или нет это уже не так важно, важно что оно разрешено :) Тем более если класс уже полиморфный, добавить еще одну виртуальную функцию недорого.

Anatoly
23.06.2018
09:50:56
+1

Google
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

Страница 2153 из 2477