Pull to refresh

Comments 14

Если посмотрите в учебник оптики для вузов, то обнаружите, что в ваших формулах не учтена главная причина описанного вами эффекта — отражение части свет при увеличении угла падения, которое увеличивается до 100% даже для полностью прозрачных материалов (альфа = 0) (формулы Френеля). Чтобы учесть, в формулы нужно ввести n — коэффициент преломления материала. И чем он больше, тем эффект выраженнее (для стекла обычно 1.5, для пластмасс меньше). Именно поэтому прозрачное стекло кажется почти непрозрачным при просмотре под острым углом к плоскости поверхности; со стаканчиками — та же история.
UFO just landed and posted this here
Зачем glu? Ради mesh? Мб тогда лучше QVector? Отправлять в шейдер можно через QVector.constData().

И еще, разве не нужно program_.disableAttributeArray и куда-нибудь program_.release();
Хотя мб последняя вместе с деструктором QGLWidget вызывается…
Хоть кто-нибудь удосужился бы объяснить за что минусуют, хоть в личку.
Потому что могут. Или потому что не используете тег code. Или просто у НЛО плохое настроение, и оно решило отыграться на вас.
Да там кода с гулькин нос, я думал, что технический где-то ошибся…
Если ошибка техническая бы была, то вероятность того, что вас поправят в комментариях, довольно высока.

Как правило, минусуют комментарий без дальнейшего объяснения по другим причинам: грамматика, форматирование, альтернативное мнение.
ух, как физик, закрываю глаза, но как геймдев, радуюсь хорошей идеи как сделать шейдеры покрасивше. Странно, что раньше такого не видел, как то наум не приходило.
Спасибо.

З.Ы. Как физик, не выдвигаю никаких притензий, так как смотрится клево, что и было целью. Автор молодчина.
Помимо отражения по формулам Френеля стоит учесть, что в толще материала свет будет идти под другим углом из-за преломления и эффект несколько уменьшится.
а вы представьте, что стенка стаканчика состоит из очень мелкой решетки, тогда при наклоне размер ячейки решетки будет уменьшаться и, соответственно, пропускаемость света будет меньше..) т.н. свойство материала…
Схожим образом имитировал глубину водоёмов (туман) pioner.mentalx.org/game/, но для самих поверхностей Френель необходим.
А что там происходит при опускании под воду?) Так и должно быть?
Развернуть
Да, косячокс неисправленный. Там при помощи Z + мышь (Ctrl / Shift) можно редактировать сам ландшафт. wireframe 1 в консоли — сетка.
Вспоминается момент, когда в 96м году подобное же «переоткрытие» этого эффекта обсуждали в Fido в конференции su.render, и речь тогда шла о рендеринге статичных трехмерных изображений (например, остекления автомобилей и самолетов) через построение карт нормалей и использование их в качестве масок для карт отражения и прозрачности. :) А потом все это появилось в виде встроенных шейдеров…
Sign up to leave a comment.

Articles