VideoMaterial выглядит пиксельным в Away3D - PullRequest
1 голос
/ 12 августа 2011

Я работаю над средством просмотра сферических фильмов в Away3D, и у меня возникла проблема при применении текстуры VideoMaterial к 3D-примитиву.Видео выглядит сильно пиксельным, как будто оно масштабируется или сильно сжато.Когда я применяю BitmapMaterial одного неподвижного изображения из видео, оно выглядит нормально, поэтому я не думаю, что проблема заключается в разрешении видео.

Я обнаружил [это обсуждение] [1], предлагая решениеуказав «fixedHeight» и «fixedWidth» при вызове конструктора, но эти аргументы, похоже, не имеют никакого эффекта, и я также не могу найти их в API .Я вижу нечто, называемое «lockH» и «lockW» [в API] [3], но мне кажется, что они тоже не имеют никакого эффекта.

Вот код, создающий VideoMaterial.

//basic intro setup stuff and then...
var videoURL:String = "assets/clip.flv";
this.primitive = new Sphere({material:"blue:#cyan", radius:50000, rotationX:100, segmentsW:30, segmentsH:30});
//more code to setup the rest of the scene, and implement some texture switching, then...
this.primitive.material = new VideoMaterial({file:videoURL, lockH:1000, lockW:2000});

Для справки, я строю этот пример в качестве отправной точки, и я использую Away3D 3.6 и Flex 4.5.1 в Eclipse Indigo.

[1]: [3]:

Ответы [ 2 ]

2 голосов
/ 27 августа 2011

Чтобы избавиться от пикселизации, установите smooth на true. Это, очевидно, не увеличит разрешение, но активирует сглаживание, так же, как smoothing=true на нативном BitmapData (внутренне это именно то, что он делает.)

Если вы собираетесь использовать видео или растровый материал в сфере, которая используется в качестве среды в полноэкранном режиме, вам понадобится видео / растровое изображение действительно высокого разрешения. В любой момент вы можете видеть не более трети поверхности сферы, и она покрывает область экрана шириной более 1000 пикселей, что говорит о том, что ваше видео должно иметь ширину не менее 3000 пикселей, так как страдать от растяжек.

0 голосов
/ 12 августа 2011

Боюсь сказать, что это «нормально». Это в основном связано с эффективностью кода ActionScript и отсутствием аппаратного ускорения и сглаживания. По существу невозможно выполнить преобразование вашего видео в примитив без потери в качестве, потому что, честно говоря, ActionScript на самом деле не создан для такого рода интенсивных вычислений.

С учетом сказанного, однако, есть надежда. Скоро выйдет новый Flash Player (или, как я слышал), который будет иметь базовый аппаратно-ускоренный 3D-рендерер (кодовое имя "Molehill"), который Away3d и другие 3D-движки (например, Alternativa) уже работают над реализацией. Это будет означать, что видео будет затем сглажено и должно быть гладким, но я не могу это подтвердить, поскольку я никогда не пробовал.

...