![]() |
попиксельная точность drawTriangles/правила растеризации её
Пример: берём битмапу (рисуем на ней), рисуем втупую её 1 к 1 квадом при помощи drawTriangles - то, что нарисовано не совпадает с выведенной рядом битмапой. Код ниже это и делает.
Нашел какой-то шаманский способ сделать, чтоб 1 к 1 выводило корректно. Но 1 к 2 (drawTriangles рисует в 2 раза увеличенную битмапу) - не хочет совсем никак. Собсно хочу об этом поговорить =) Дядьки (и тётки), научите, как работает drawTriangles и как её заставить нарисовать в 2 раза увеличенную модель корректно. По какому принципу оно рисует так, как рисует? Вроде имею представление, как тексели в пикселы перелезают, но везде в 2 раза увеличить текстуру при этом - нет проблем. Растеризация при помощи moveTo/lineTo и матрицы при beginBitmapFill - работает отлично. Собсно, если нельзя корректно даже в 2 раза увеличенную текстуру на кваде нарисовать, то как-то стрёмно вообще drawTriangles использовать. Код AS3:
|
При текстурировании треугольника происходит интерполяция, которая далека от копирования точек 1-в-1 из текстуры в рамках треугольной области.
|
А как она работает-то на флэше?
Если нельзя получить тупо в 2 раза увеличенную текстуру, то это хреновая интерполяция. У меня было текстурирование треугольников при помощи moveTo/lineTo и матрицы при beginBitmapFill - всё отлично и предсказуемо (ну без перспективной коррекции, есстесно). В директе тоже 0 проблем. |
Покажи, что у тебя выходит.
|
ээ выше ж код, в комментах написано, что делать, чтоб в 2 раза увеличить. При moveTo/lineTo - тупо всё как надо, код не приводил, чтоб не захламлять.
|
Я имел в виду изображения.
|
Код AS3:
|
Изображение, на котором виден горький катаклизм в том коде генерится, мож фон поменять на чёрный, или цвет чёрный непрозрачный поставить в setPixel().
|
да, с линией получается одна Жирная точка посередине...
Добавлено через 1 минуту а, вот если smooth поставить в beginBitmapFill, то более-менее. Добавлено через 3 минуты нда, вообщем жесть... |
Почему не устраивает вариант с увеличением изображения с помощью Matrix.scale?
Код AS3:
|
Потому что он не использует для отрисовки drawTriangles =) См. тему =)
Если что, то я достану из закромов мой старый drawTriangles, для 9-го плеера, для моих текущих целей должно быть почти всё равно (хоть он тормознее по идее) но какбэ я думал, что хватит, есть же нормальный. Да и перспективная коррекция не лишняя может быть когда-нибудь. Если что, то это в конечном итоге таки модель, экспортированная из макса, с вершинами, текс. координатами и индексами. |
| Часовой пояс GMT +4, время: 06:21. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.