// Rectangle CanvasUVTris.SetNum(2); FCanvasUVTri& CanvasUVTri = CanvasUVTris[0]; CanvasUVTri.V0_Pos = FVector2D::ZeroVector; CanvasUVTri.V0_UV = FVector2D::ZeroVector; CanvasUVTri.V0_Color = FLinearColor::White; CanvasUVTri.V1_Pos = FVector2D(0.0, 1.0); CanvasUVTri.V1_UV = FVector2D(0.0, 1.0); CanvasUVTri.V1_Color = FLinearColor::White; CanvasUVTri.V2_Pos = FVector2D(1.0, 0.0); CanvasUVTri.V2_UV = FVector2D(1.0, 0.0); CanvasUVTri.V2_Color = FLinearColor::White; FCanvasUVTri& CanvasUVTri1 = CanvasUVTris[1]; CanvasUVTri1.V0_Pos = FVector2D(1.0, 0.0); CanvasUVTri1.V0_UV = FVector2D(1.0, 0.0); CanvasUVTri1.V0_Color = FLinearColor::White; CanvasUVTri.V1_Pos = FVector2D(0.0, 1.0); CanvasUVTri.V1_UV = FVector2D(0.0, 1.0); CanvasUVTri.V1_Color = FLinearColor::White; CanvasUVTri1.V2_Pos = FVector2D(1.0, 1.0); CanvasUVTri1.V2_UV = FVector2D(1.0, 1.0); CanvasUVTri1.V2_Color = FLinearColor::White; // render UCanvas* CanvasHeightMap0 = nullptr; FVector2D Size; FDrawToRenderTargetContext RenderTargetContextHeightMap0; UKismetRenderingLibrary::BeginDrawCanvasToRenderTarget(GetWorld(), RTHeightMap0, CanvasHeightMap0, Size, RenderTargetContextHeightMap0); CanvasHeightMap0->UCanvas::K2_DrawMaterialTriangle(MatInstHeightMapBegin, CanvasUVTris); UKismetRenderingLibrary::EndDrawCanvasToRenderTarget(this, RenderTargetContextHeightMap0);
Пытаюсь просто отрендерить dynamic material в render target (RTF_RGBA32f) через Canvas, там просто розовый цвет, но на выходе чёрная текстура.

Возможно треугольники надо от -1 до 1, но тогда бы хотя бы правый нижний угол был бы цветной.
позвольте вставить мне свой пятачёк. А где вот в этом
Osiris
> UCanvas* CanvasHeightMap0 = nullptr;
> FVector2D Size;
> FDrawToRenderTargetContext RenderTargetContextHeightMap0;
> UKismetRenderingLibrary::BeginDrawCanvasToRenderTarget(GetWorld(),
> RTHeightMap0, CanvasHeightMap0, Size, RenderTargetContextHeightMap0);
>
> CanvasHeightMap0->UCanvas::K2_DrawMaterialTriangle(MatInstHeightMapBegin,
> CanvasUVTris);
>
> UKismetRenderingLibrary::EndDrawCanvasToRenderTarget(this,
> RenderTargetContextHeightMap0);
вот это FFTButterflyHeightBegin ?
Как передаётся сама розовая текстура то?
ЗЫ Я в рендер таргет рисовал карты теней только ( а не карты высот). И только на C # HLSL. Там я тоже настраивал по шаблону формат цветов (какой дали в примере, такой и настраивал) и там тоже были только оттенки серого.
>FFTButterflyHeightBegin
текстура должна передать данные для расчёта, она не розовая, розовый я чисто для тестов цвет материала установил. А результат чёрный, что значит что Draw не выполнен как надо, самое обидное что отладчики вроде PIX на DX12 такую дичь выводят для Unreal (в плане что я сильно отстал по знанию API) что ничерта не понятно куда там что вообще суётся.
atomic
> А какая исходная задача?
это FFT без compute shader, потому что на Unreal compute shaders это адова хрень (имхо)
Osiris
> потому что на Unreal compute shaders это адова хрень
Я писал шейдеры на HLSL, но в UE чёт думал, что материалы - это и есть шейдеры... Всё что я когда-то лепил ручками в коде, теперь можно квадратиками-нодами в материале наковырять. Как всю сцену в ренедер-таргет нодами отправить - я сам теряюсь в догатках. Но зачем? ИМХО рендер-таргет нужен только для отрисовки теней (shadow mapping). Зачем туда карту высот совать - я вообще не представляю. Некоторые на шейдерах криптовалюту пилят. Как по мне - так это жутчайшее извращение, как технически, так и морально. Ты же не будешь крипту блупритантами на UE пилить?
ivashko
> Как всю сцену в ренедер-таргет нодами отправить - я сам теряюсь в догатках. Но
> зачем?
Как раз таки нехрен делать, тебе товарищ atomic подсказал. Я же делать расчёт массовый Gerstner Waves методом описанным ещё Тессендорфом для титаника через FFT алгоритм распараллеленым (смотри все примеры от nVidia касающиеся Ocean)
ivashko
> ИМХО рендер-таргет нужен только для отрисовки теней (shadow mapping)
Без обид, но про графику ты знаешь очень мало, весь Differed Render строится на RenderTargets.
Osiris
> весь Differed Render строится на RenderTargets.
ну дык это ж оно и есть. Освещение, затенения... Разве не?
В UE это всё из коробки же ж... А так потратишь время на велосипеды, и будешь потом читать гневные отзывы на стиме от конкурентов, которые даже программирования не знают, но тоже что-то на готовых движках выпускают и даже что-то умудряются зарабатывать. Знал бы ты с каким презрением такие к программистам относятся. Даже ссылки на статьи про "глупых программистов" и "умных" дизайнеров в темы кидают. Вот после таких бесед я и перестал выпускать игры на своём самописном движке и взялся за движок, который мне показался лучшим...
Какой тип брендинга материала ?
Тема в архиве.