Size: a a a

2020 November 05

AS

Alex Shcherbakov in Unreal Engine
#вопрос
привет всем.
подскажите пожалуйста, чтото не получилось нагуглить.
а как задать монитор и разрешение на которое нужно выводить?
источник

W

WorLDSine in Unreal Engine
Парни не программист, поэтому не шарю. В общем, почему opacity mask не горит белым?
источник

DS

Dimka Sokolov in Unreal Engine
WorLDSine
Парни не программист, поэтому не шарю. В общем, почему opacity mask не горит белым?
потому что тип материала стоит другой. нужен маскед для опасити маск
источник

IK

Ivan Kurulyuk in Unreal Engine
WorLDSine
Парни не программист, поэтому не шарю. В общем, почему opacity mask не горит белым?
Типа материала поменяйте
источник

W

WorLDSine in Unreal Engine
Во! Обоим спасибо!
источник

МЛ

Михаил Лукьянов... in Unreal Engine
Приветствую  всех. Есть вопрос к шарящим в трехмерную математику.
Появилась необходимость написать свой атмосферный скаттеринг. Делаю по статье
https://developer.nvidia.com/gpugems/gpugems2/part-ii-shading-lighting-and-shadows/chapter-16-accurate-atmospheric-scattering

так вот. Я не совсем уверен, что делаю правильно трассировку луча, проходящего через сферу атмосферы. Можете проверить?
//Возвращает дистанцию до "входа" в волюм и "выхода" из волюма луча
float2 atmosphere_sdf_ray(float3 CameraLocation, float3 CameraDirection, float Radius)
{
 //Находим дистанцию до точки поверхности сфера
 float Distance = length(CameraLocation) - Radius;

 //Находим точку пересечения луча и поверхноти
 float3 InPoint = CameraDirection * Distance + CameraLocation;
 
 //Определим "Срез сферы", через который проходит луч
 float RayRad = PI - dot( InPoint, -CameraDirection );
 float RayNormalRad = PI * 0.5f - RayRad;
 float m = sin( RayRad );
   
 float mm = m * m;
 float RR = Radius * Radius;
 float r = sqrt( RR - mm );
   
 return float2
 (
   Distance,
   length(r*r * CameraDirection + InPoint)
 );
}
источник

МЛ

Михаил Лукьянов... in Unreal Engine
конкретно тут я пытаюсь вычленить отрезок AB из сферы
https://developer.nvidia.com/sites/all/modules/custom/gpugems/books/GPUGems2/elementLinks/16_atmospheric_02.jpg
источник

OG

Oleg Gomozov in Unreal Engine
//Находим дистанцию до точки поверхности сфера
 float Distance = length(CameraLocation) - Radius;

это дистанция до точки А или кратчайшая до сферы?
источник

OG

Oleg Gomozov in Unreal Engine
если до А то формула не правильная
источник

OG

Oleg Gomozov in Unreal Engine
тоже сейчас разбираюсь со скаттерингом
источник

МЛ

Михаил Лукьянов... in Unreal Engine
нет, это предположительная дистанция от камеры до поверхности (вариант когда луч промахивается, пока не сделал)
источник

OG

Oleg Gomozov in Unreal Engine
источник

OG

Oleg Gomozov in Unreal Engine
мне кажется InPoint неправильно посчитана
источник

OG

Oleg Gomozov in Unreal Engine
у тебя дистанция кратчайшая до поверхности, напрямую с центром сферы соединенная. (синий луч)
источник

МЛ

Михаил Лукьянов... in Unreal Engine
вот есть такое, да
источник

OG

Oleg Gomozov in Unreal Engine
потом ты откладывааешь эту дистанцию по направлению камеры и берешь точку ИнПойнт
источник

OG

Oleg Gomozov in Unreal Engine
которая не на сфере
источник

OG

Oleg Gomozov in Unreal Engine
источник

OG

Oleg Gomozov in Unreal Engine
источник

OG

Oleg Gomozov in Unreal Engine
вот тут вроде дают уравнения
источник