• 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 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу