ПрограммированиеФорумГрафика

Материалы объектов

Страницы: 1 2 37 8 Следующая »
#0
18:55, 18 авг 2012

Ребят, вот начал только разбираться со светом, вроде, всё понятно, но вот с материалами затруднение вышло, не понимаю как создавать материал для объектов на которых текстуры, с однотонными объектами всё ясно, просто указываем цвет  объекта, а с текстурами как ?

#1
20:10, 18 авг 2012

ты про D3DMATERIAL9? это неактуально сегодня уже, рекомендую шейдеры покурить.
тут всё довольно исчерпывающе: http://netlib.narod.ru/library/book0032/index.htm (и по твоему вопросу и по начинанию в шейдерах)

#2
20:26, 18 авг 2012

благодарю попробую

#3
2:51, 20 авг 2012

что-то я ничего не понял с шейдерами, может есть какой-нибудь другой способ что быосветить текстуры ?

#4
3:25, 20 авг 2012

кажется разобрался)

#5
3:52, 20 авг 2012

подскажите пожалуйста, у меня почемуто когда я использую функцию DrawSubset() в сцене остаётся только объект который я рисую этим методом, а все остальные пропадают... с чем это связано ?

#6
10:27, 20 авг 2012

NEvOl покажи свой кусок кода Rendera.
Так будет понятнее.
Ты на Directx 9 или 10 пишешь?
Скажу что без шейдеров тяжело обойтись. Шейдеры дают много возможностей и быстро работают, так как все это работает на видеокарте.
А если химичить на CPU(процессоре) тоесть в программе то будет медленно и не удобно. Под словами химичить на CPU я имею ввиду изменять цвет текстуры и рисунок текстуры. Которую потом применять к нужному объекту.
Так что от шейдеров не отвертеться.

#7
10:43, 20 авг 2012

NEvOl
> подскажите пожалуйста, у меня почемуто когда я использую функцию DrawSubset()
> в сцене остаётся только объект который я рисую этим методом, а все остальные
> пропадают... с чем это связано ?
Ошибка в 42 строке

#8
17:13, 20 авг 2012

работаю с DirctX9
device->BeginScene();
      if(FAILED(device->SetTexture(0,texture1)))
        return false;
      if(FAILED(device->DrawPrimitive(D3DPT_TRIANGLELIST,0,12)))
        return false;
      if(FAILED(device->SetTexture(0,texture2)))
        return false;
      if(FAILED(device->DrawPrimitive(D3DPT_TRIANGLELIST,30,2)))
        return false;
      if(FAILED(device->SetTexture(0,texture3)))
        return false;
      if(FAILED(device->DrawPrimitive(D3DPT_TRIANGLELIST,36,2)))
        return false;
      if(FAILED(device->SetTexture(0,texture4)))
        return false;
      if(FAILED(device->DrawPrimitive(D3DPT_TRIANGLELIST,42,8)))
        return false; 
      for(DWORD i = 0; i < dwNumbers; i++)
      { 
        device->SetMaterial(&MeshMaterial);
        device->SetTexture(0,MeshTexture
);
        mesh->DrawSubset(i);// вот если убираю это то всё отображается нормально, если с ней то ничего не видно кроме загруженой сетки
      }
   


    device->EndScene();

#9
18:38, 20 авг 2012

>Ошибка в 42 строке
И почему у всех ошибка именно в 42 строке? Вероятность такого совпадения слишком мала.

#10
19:39, 20 авг 2012

gammaker
> И почему у всех ошибка именно в 42 строке? Вероятность такого совпадения
> слишком мала.



#11
20:04, 20 авг 2012

что-то я не понимаю, о какой ошибке идёт речь ?

#12
20:08, 20 авг 2012

>что-то я не понимаю, о какой ошибке идёт речь ?
Об ошибке на 42 строке

#13
20:14, 20 авг 2012

NEvOl
> что-то я не понимаю, о какой ошибке идёт речь ?
Ну вот же
http://www.google.com/search?ie=windows-1251&oe=windows-1251&… 0%E9%F2%E8%21

#14
21:01, 20 авг 2012

If FAILED досавляют. Макросы видимо уже не в почёте.

Страницы: 1 2 37 8 Следующая »
ПрограммированиеФорумГрафика

Тема в архиве.