Здравствуйте Keysalg1, Вы писали:
K>но вот вывести по отдельности не получается
lpD3DD->>DrawIndexedPrimitive( D3DPT_TRIANGLELIST,0, 588+49+127,0,960+72+216);
Напиши сюда, как ты пытаешься вывести их по-отделности. То, что ты запостил
сюда код, который работает, конечно хорошо, но ты бы еще добивил то, про что
и спрашиваешь.
Здравствуйте Snax, Вы писали:
S>Здравствуйте Keysalg1, Вы писали:
K>>но вот вывести по отдельности не получается
lpD3DD->>>DrawIndexedPrimitive( D3DPT_TRIANGLELIST,0, 588+49+127,0,960+72+216);
S>Напиши сюда, как ты пытаешься вывести их по-отделности. То, что ты запостил S>сюда код, который работает, конечно хорошо, но ты бы еще добивил то, про что S>и спрашиваешь.
ну вот например:
вершины для трех фигур 588,49,127
индексы для трех фигур 960,72,216
DrawIndexedPrimitive( D3DPT_TRIANGLELIST,588, 49+127,0,72+216);
ну или
DrawIndexedPrimitive( D3DPT_TRIANGLELIST,0, 588+49+127,960,72+216);
короче в первом случае вообще reboot
а во втором выводит ту жу первую фигуру , частично
как я понял из SDK так и сделал
если знаешь напиши как ты бы сделал а не как у меня не получается !
Здравствуйте Keysalg1, Вы писали: K>вершины для трех фигур 588,49,127 K>индексы для трех фигур 960,72,216
Хм... Т.е. у тебя первая фирура 588 вершин и 960 инвексов?
K>DrawIndexedPrimitive( D3DPT_TRIANGLELIST,0, 588+49+127,960,72+216);
Ну почти так. Только на 3 подели последний параметр и должен увидеть 2 и 3 фигуру.
Последний параметр это не количество индексов, а количество примитивов (треугольников)
и в случае с D3DPT_TRIANGLELIST просто следует делить на 3.
Здравствуйте Snax, Вы писали:
S>Здравствуйте Keysalg1, Вы писали: K>>вершины для трех фигур 588,49,127 K>>индексы для трех фигур 960,72,216
S>Хм... Т.е. у тебя первая фирура 588 вершин и 960 инвексов?
K>>DrawIndexedPrimitive( D3DPT_TRIANGLELIST,0, 588+49+127,960,72+216);
S>Ну почти так. Только на 3 подели последний параметр и должен увидеть 2 и 3 фигуру. S>Последний параметр это не количество индексов, а количество примитивов (треугольников) S>и в случае с D3DPT_TRIANGLELIST просто следует делить на 3.
Я тоже думал , что по логике вещей так и должно быть но только 960,72,216
это уже количество примитивов (во первых) а во вторых именно так и неработает ...
Здравствуйте Keysalg1, Вы писали:
K>это уже количество примитивов (во первых) а во вторых именно так и неработает ...
Ну тогда у тебя неправильно задан предпоследний параметр. Его, стало быть,
нужно на 3 умножить. Он в индексах а не примитивах.
Здравствуйте Snax, Вы писали:
S>Здравствуйте Keysalg1, Вы писали:
K>>это уже количество примитивов (во первых) а во вторых именно так и неработает ... S>Ну тогда у тебя неправильно задан предпоследний параметр. Его, стало быть, S>нужно на 3 умножить. Он в индексах а не примитивах.
для внесения ясности ...
у меня есть vertex buffer в котором по очереди записано 588,49,127
вершин соответственно для первой , второй , третей фигуры ....
и есть index buffer, в котором по очереди записаны индексы 960,72,216
960 это количество примитивов (когда создавал индекс буфер то (960+72+216)*3*sizeof(WORD)
так вот эта строка выводит сцену из трех фигур :
lpD3DD->DrawIndexedPrimitive( D3DPT_TRIANGLELIST,
0, 588+49+127,0,960+72+216);
если написать так :
lpD3DD->DrawIndexedPrimitive( D3DPT_TRIANGLELIST,
0, 588+49+127,960,72+216);
то выводится опять таки первая фигура но только не полностью т.е.
предпоследний параметр почемуто не играет роли т.е. если в последнюю строку подставить
в предпоследний параметр 0 или 960 ничего не меняется ...
Здравствуйте Snax, Вы писали:
S>Здравствуйте Keysalg1, Вы писали:
K>>это уже количество примитивов (во первых) а во вторых именно так и неработает ... S>Ну тогда у тебя неправильно задан предпоследний параметр. Его, стало быть, S>нужно на 3 умножить. Он в индексах а не примитивах.
Можно не продолжать , спасибо ... сам догадался , просто опять торможу
....P.S. просто на самом деле была разница ... вернее ошибка в том , что
предпоследний параметр в индексах а последний в примитивах
спасибо , ведь читал же , переводил этот хренов Dx Help ,,???