Кста, сейчас глянул стенсил текстуру... В общем логично, что она так вела себя когда брали цвет а не альфу в качестве маски. Попробуй сам в фотошопе или гимпе разложи её по каналам - увидишь ) Я думаю можно в качестве альтернативного варианта просто удалить альфу, заменив белым цветом. Для общего развития, откуда текстурка маски взялась? В блендере рисовал или отдельно в каком-то редакторе?
В блендере нарисовал очертания (черная дорога на белом фоне), потом в гимпе перевел белый цвет в альфа канал, и сделал размытие. Хотя для такого простого примера можно было сразу в гимпе делать. Это если надо маску наложить на какую-нибудь рельефную поверхность, тогда конечно сначала в блендере рисовать
Сообщение отредактировал Dimon3D - Вторник, 06.09.2011, 05:24
Ну что, ninth, ты как всегда предложил самый правильный вариант. Сейчас попробовал сделать маску без альфы - все работает. К тому же не надо лазить в файл модели, чтобы чегото там поправить. Почемуто я с самого начала пошел по неправильному пути, используя маску с альфой (
Есть моделька в формате *.obj, в MilkShape модель открывается нормально, все текстуры на месте, но при попытке отобразить ее средствами панды видень лишь белоснежный меш. Прилагаю модель и код:
Насколько я помню/понимаю obj не стандартизирован и зависит от интерпретации - скорее всего в этом и причина. Блендер, например, у меня прочитал только две текстуры со всей модели. Почему бы не пользоваться родным пандовским форматом?
Видны даже участки, которые по-идее должны были быть прозрачными. Насколько я понял, мне нужно включить правильный режим смешивания, но ни у PGButton, ни PGFrameStyle, ни у Texture нужного метода я не нашел. Где я не прав?
Помогите пожалуйста, у меня проблема. Если кратко: как раздельно применять .setTexProjector() к моделькам, собраным в один RigidBodyCombiner? Подробно: Пример 1. Пока я не использую RigidBodyCombiner, легко получается применить .setTexProjector() к кубам по-отдельности, наложив текстуру под разными углами.
Code
import direct.directbase.DirectStart
from pandac.PandaModules import VBase3 from pandac.PandaModules import NodePath from pandac.PandaModules import TextureStage, TexGenAttrib
Пример 2. Когда я собираю кубы в один RigidBodyCombiner, раздельно применить к ним .setTexProjector() не получается (видимо, используется дефолтный).
Code
import direct.directbase.DirectStart
from pandac.PandaModules import VBase3 from pandac.PandaModules import NodePath, RigidBodyCombiner from pandac.PandaModules import TextureStage, TexGenAttrib
Тот же результат будет если сначала применить .collect(), а потом .setTexProjector(). Не помогает также когда я применяю не только .setTexProjector(), но и .setTexture() и .setTexGen() по-отдельности, до или после .collect().