Недавно я работал над улучшением наших теней в игре, пытаясь исправить несколько проблем с самозатенением и неровными краями. Одним из улучшений, которые я попытался добавить, является PCF, чтобы сделать наши тени менее блочными. Однако при попытке реализовать это я наблюдаю очень неожиданное поведение и не могу понять, что именно происходит.
На первом изображении показан шейдер перед попыткой выполнения PCF. Это шейдер, который мы используем уже некоторое время, и он в целом работает, за исключением явно неровных краев по краям уровня и некоторой неправильной штриховки на пне.
На втором изображении показано, что происходит при попытке использовать PCF. Я не верю, что это функция PCF, поскольку она взята непосредственно из рабочего примера, но я определенно могу ошибаться.
Недавно я работал над улучшением наших теней в игре, пытаясь исправить несколько проблем с самозатенением и неровными краями. Одним из улучшений, которые я попытался добавить, является PCF, чтобы сделать наши тени менее блочными. Однако при попытке реализовать это я наблюдаю очень неожиданное поведение и не могу понять, что именно происходит. На первом изображении показан шейдер перед попыткой выполнения PCF. Это шейдер, который мы используем уже некоторое время, и он в целом работает, за исключением явно неровных краев по краям уровня и некоторой неправильной штриховки на пне. [img]https://i.sstatic.net/4apTJRcL.png[/img]
На втором изображении показано, что происходит при попытке использовать PCF. Я не верю, что это функция PCF, поскольку она взята непосредственно из рабочего примера, но я определенно могу ошибаться. [img]https ://i.sstatic.net/LhJyiQ5d.png[/img]
Вот мой код шейдера (HLSL): [code]//////////////////////////////////////////////////////////////////////////////////////////////////////////// // VARIABLES //////////////////////////////////////////////////////////////////////////////////////////////////////////// matrix World; matrix WorldViewProjection;
float3 AmbientLightColor;
////Be sure this matches the define in SolariDefines.cs //static const int MAX_POINT_LIGHTS = 8; //int PointLightCount; //float3 PointLightPosition[MAX_POINT_LIGHTS]; //float PointLightRange[MAX_POINT_LIGHTS]; //float3 PointLightColor[MAX_POINT_LIGHTS]; //
поэтому я хотел бы добавить тени в свою программу рендеринга.
Я использую Python (с Moderngl) и glsl, но тени не визуализируются...
Без использования массивов все работает нормально, но мне нужно их использовать (позже я попробую добавить больше...
поэтому я хотел бы добавить тени в свою программу рендеринга.
Я использую Python (с Moderngl) и glsl, но тени не визуализируются...
Без использования массивов все работает нормально, но мне нужно их использовать (позже я попробую добавить больше...
У меня есть библиотека с несколькими глобальными картами:
в заголовке (header0):
extern std::map AVPixelFormatMap;
extern std::map AVMediaTypeMap;
extern std::map AVCodecIDMap;
в cpp (cpp0):
std::map AVPixelFormatMap
{
{AV_PIX_FMT_NONE,...
У меня есть библиотека с несколькими глобальными картами:
В заголовке (Header0):
extern std::map AVPixelFormatMap;
extern std::map AVMediaTypeMap;
extern std::map AVCodecIDMap;
в cpp (cpp0):
std::map AVPixelFormatMap
{
{AV_PIX_FMT_NONE,...