[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 2 из 3
  • «
  • 1
  • 2
  • 3
  • »
Форум Panda3D - по русски » Panda3D » Для начинающих » Все о текстурировании
Все о текстурировании
ninthДата: Понедельник, 05.09.2011, 12:44 | Сообщение # 16
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
Попробуй заменить в файле в описании текстуры Material.001_02_Tex.003
<Scalar> combine-rgb-operand2 { SRC-COLOR }
на
<Scalar> combine-rgb-operand2 { SRC-ALPHA }
 
Dimon3DДата: Понедельник, 05.09.2011, 12:51 | Сообщение # 17
Полковник
Группа: Проверенные
Сообщений: 202
Награды: 1
Репутация: 4
Статус: Offline
спасибо, помогло
 
ninthДата: Понедельник, 05.09.2011, 23:58 | Сообщение # 18
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
Кста, сейчас глянул стенсил текстуру... В общем логично, что она так вела себя когда брали цвет а не альфу в качестве маски. Попробуй сам в фотошопе или гимпе разложи её по каналам - увидишь ) Я думаю можно в качестве альтернативного варианта просто удалить альфу, заменив белым цветом. Для общего развития, откуда текстурка маски взялась? В блендере рисовал или отдельно в каком-то редакторе?
 
Dimon3DДата: Вторник, 06.09.2011, 05:21 | Сообщение # 19
Полковник
Группа: Проверенные
Сообщений: 202
Награды: 1
Репутация: 4
Статус: Offline
В блендере нарисовал очертания (черная дорога на белом фоне), потом в гимпе перевел белый цвет в альфа канал, и сделал размытие.
Хотя для такого простого примера можно было сразу в гимпе делать. Это если надо маску наложить на какую-нибудь рельефную поверхность, тогда конечно сначала в блендере рисовать


Сообщение отредактировал Dimon3D - Вторник, 06.09.2011, 05:24
 
Dimon3DДата: Вторник, 06.09.2011, 05:44 | Сообщение # 20
Полковник
Группа: Проверенные
Сообщений: 202
Награды: 1
Репутация: 4
Статус: Offline
Ну что, ninth, ты как всегда предложил самый правильный вариант. Сейчас попробовал сделать маску без альфы - все работает. К тому же не надо лазить в файл модели, чтобы чегото там поправить.
Почемуто я с самого начала пошел по неправильному пути, используя маску с альфой (
 
SpaltДата: Среда, 11.01.2012, 15:33 | Сообщение # 21
Рядовой
Группа: Пользователи
Сообщений: 5
Награды: 0
Репутация: 0
Статус: Offline
а можно менять текстуры уже на показанной на экране модельки во время работы программы?
 
ninthДата: Среда, 11.01.2012, 17:03 | Сообщение # 22
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
Да. К сожалению, эта часть мануала ещё не переведена. Ссылка на английский ман http://www.panda3d.org/manual/index.php/Simple_Texture_Replacement там по-идее понятно и без особого знания английского.
 
KornivalДата: Среда, 14.03.2012, 23:02 | Сообщение # 23
Лейтенант
Группа: Пользователи
Сообщений: 40
Награды: 0
Репутация: 1
Статус: Offline
Есть моделька в формате *.obj, в MilkShape модель открывается нормально, все текстуры на месте, но при попытке отобразить ее средствами панды видень лишь белоснежный меш. Прилагаю модель и код:
Code

#pragma warning(disable:4275)

#include <PandaSystem.h>
#include <PandaFramework.h>

PandaFramework framework;

int main(int argc, char **argv)
{
  framework.open_framework(argc,argv);
  WindowFramework *window = framework.open_window();
   
  NodePath apache = window->load_model(framework.get_models(),"APACHE/Apache.obj");
  apache.reparent_to(window->get_render());

  apache.set_scale(0.25, 0.25, 0.25);
  apache.set_pos(-8, 42, 0);

  framework.main_loop();
  framework.close_framework();
  return 0;
}
Прикрепления: APACHE.rar (1.08 Mb)
 
ninthДата: Четверг, 15.03.2012, 10:10 | Сообщение # 24
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
Насколько я помню/понимаю obj не стандартизирован и зависит от интерпретации - скорее всего в этом и причина. Блендер, например, у меня прочитал только две текстуры со всей модели. Почему бы не пользоваться родным пандовским форматом?
 
KornivalДата: Четверг, 15.03.2012, 13:08 | Сообщение # 25
Лейтенант
Группа: Пользователи
Сообщений: 40
Награды: 0
Репутация: 1
Статус: Offline
Перегонял в egg утилитой в составе панды, результат тот же.
 
ninthДата: Четверг, 15.03.2012, 13:41 | Сообщение # 26
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
Всё верно, с чему бы ему отличаться, если алгоритм конвертации один и тот-же. Попробуй пересохрани в какой-нить другой формат - COLLADA или *.X
 
KornivalДата: Воскресенье, 18.03.2012, 20:20 | Сообщение # 27
Лейтенант
Группа: Пользователи
Сообщений: 40
Награды: 0
Репутация: 1
Статус: Offline
thx

Добавлено (18.03.2012, 20:20)
---------------------------------------------
Создаю кнопку и цепляю к нему текстуру.

Code

PT(PGButton) Button;
Button = new PGButton("Button");
Button->setup("New Game");
   
PT(Texture) ready = TexturePool::load_texture(filename,);
PGFrameStyle style = Button->get_frame_style(0);
style.set_texture(ready);
   
Button->set_frame_style(0,style);

Видны даже участки, которые по-идее должны были быть прозрачными. Насколько я понял, мне нужно включить правильный режим смешивания, но ни у PGButton, ни PGFrameStyle, ни у Texture нужного метода я не нашел. Где я не прав?
 
ninthДата: Воскресенье, 18.03.2012, 22:52 | Сообщение # 28
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
Насколько я помню, прозрачность применяется не к кнопке, а к ноду, который представляет одно из состояний кнопки так же как к обычной модельке.
 
KornivalДата: Вторник, 20.03.2012, 18:43 | Сообщение # 29
Лейтенант
Группа: Пользователи
Сообщений: 40
Награды: 0
Репутация: 1
Статус: Offline
Угу, в заблуждение ввело то, что текстура применялась к кнопке, а не ноде. СПС.
 
DancingOxДата: Четверг, 22.03.2012, 15:19 | Сообщение # 30
Лейтенант
Группа: Пользователи
Сообщений: 40
Награды: 0
Репутация: 3
Статус: Offline
Помогите пожалуйста, у меня проблема.
Если кратко: как раздельно применять .setTexProjector() к моделькам, собраным в один RigidBodyCombiner?
Подробно:
Пример 1. Пока я не использую RigidBodyCombiner, легко получается применить .setTexProjector() к кубам по-отдельности, наложив текстуру под разными углами.

Пример 2. Когда я собираю кубы в один RigidBodyCombiner, раздельно применить к ним .setTexProjector() не получается (видимо, используется дефолтный).
Прикрепления: 3445526.png (77.5 Kb) · 2721462.png (88.6 Kb)


Сообщение отредактировал DancingOx - Четверг, 22.03.2012, 15:26
 
Форум Panda3D - по русски » Panda3D » Для начинающих » Все о текстурировании
  • Страница 2 из 3
  • «
  • 1
  • 2
  • 3
  • »
Поиск: