Ребят, вот начал только разбираться со светом, вроде, всё понятно, но вот с материалами затруднение вышло, не понимаю как создавать материал для объектов на которых текстуры, с однотонными объектами всё ясно, просто указываем цвет объекта, а с текстурами как ?
ты про D3DMATERIAL9? это неактуально сегодня уже, рекомендую шейдеры покурить.
тут всё довольно исчерпывающе: http://netlib.narod.ru/library/book0032/index.htm (и по твоему вопросу и по начинанию в шейдерах)
благодарю попробую
что-то я ничего не понял с шейдерами, может есть какой-нибудь другой способ что быосветить текстуры ?
кажется разобрался)
подскажите пожалуйста, у меня почемуто когда я использую функцию DrawSubset() в сцене остаётся только объект который я рисую этим методом, а все остальные пропадают... с чем это связано ?
NEvOl покажи свой кусок кода Rendera.
Так будет понятнее.
Ты на Directx 9 или 10 пишешь?
Скажу что без шейдеров тяжело обойтись. Шейдеры дают много возможностей и быстро работают, так как все это работает на видеокарте.
А если химичить на CPU(процессоре) тоесть в программе то будет медленно и не удобно. Под словами химичить на CPU я имею ввиду изменять цвет текстуры и рисунок текстуры. Которую потом применять к нужному объекту.
Так что от шейдеров не отвертеться.
NEvOl
> подскажите пожалуйста, у меня почемуто когда я использую функцию DrawSubset()
> в сцене остаётся только объект который я рисую этим методом, а все остальные
> пропадают... с чем это связано ?
Ошибка в 42 строке
работаю с 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();
>Ошибка в 42 строке
И почему у всех ошибка именно в 42 строке? Вероятность такого совпадения слишком мала.
gammaker
> И почему у всех ошибка именно в 42 строке? Вероятность такого совпадения
> слишком мала.
что-то я не понимаю, о какой ошибке идёт речь ?
>что-то я не понимаю, о какой ошибке идёт речь ?
Об ошибке на 42 строке
NEvOl
> что-то я не понимаю, о какой ошибке идёт речь ?
Ну вот же
http://www.google.com/search?ie=windows-1251&oe=windows-1251&… 0%E9%F2%E8%21
If FAILED досавляют. Макросы видимо уже не в почёте.
Тема в архиве.