• 0
HoShiMin

TPlane и Альфа-канал

Вопрос

Delphi 10.1 Berlin Update 1
На форме два TPlane'a, один позади другого. На каждый накладываются текстурки из png с альфа-каналом (TTextureMaterialSource).

Если привязывать MaterialSource'ы в дизайн-тайме (кидать для каждого TPlane'a на форму свой TTextureMaterialSource),
альфа-канал обрабатывается корректно (в прозрачных участках видно, что находится "позади" TPlane'a).

Если создавать TTextureMaterialSource и привязывать в рантайме, то при при повороте TPlane'ов прозрачность исчезает, и всё, что позади переднего TPlane'а, перестаёт рендериться.
Привязываю так:

procedure TForm1.FormCreate(Sender: TObject);
var
  MS1, MS2: TTextureMaterialSource;
begin
  MS1 := TTextureMaterialSource.Create(Plane1);
  MS2 := TTextureMaterialSource.Create(Plane2);

  MS1.Parent := Form1;
  MS2.Parent := Form1;

  Plane1.MaterialSource := MS1;
  Plane2.MaterialSource := MS2;

  MS1.Texture.LoadFromFile('C:\Users\Администратор\Pictures\TestTransparentTexture.png');
  MS2.Texture.LoadFromFile('C:\Users\Администратор\Pictures\TestFilledTexture.png');
end;

И результат - задняя красная панелька не рендерится за большой передней:

07-10-2016 22-38-16.png

То же самое, но с TTextureMaterialSource'ами, привязанными в дизайн-тайме через визуальные компоненты (как должно быть):

07-10-2016 22-42-11.png

 

Как это исправить? TPlane'ов будет много, на каждую панельку кидать свой компонент материала - не вариант.

Проект в аттаче

TransparentPlane.zip

Изменено пользователем HoShiMin

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

0 ответов на этот вопрос

Нет ответов на вопрос

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас

  • Похожие публикации

    • Автор: Vladix
      Столкнулся с тем, что поведение style-файлов, идущих в поставке XE6
      (c:\Program Files (x86)\Embarcadero\Studio\14.0\Redist\styles\Fmx\*.style)
      отличается от style-файлов, созданных с помощью утилиты Bitmap Style Designer. Собственно, потому и сабж. Или совет на тему решения проблемы.
       
      Воспроизвести это просто:
      Создаем новый проект Firemonkey HD Устанавливаем у главной формы Transparency в True Накидываем на форму кучу визуальных компонентов Кидаем на форму TStyleBook, применяем стиль из стандартных. В дизайнере все поменялось. Запускаем приложение. Все работает как надо. Применяем стиль из созданных в Bitmap Style Designer. В дизайнере все поменялось. Запускаем приложение... ...и ничего не отображается
  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу