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

Как динамически изменить цвет треугольника в directx11 из туториала? (2 стр)

Страницы: 1 2 3 Следующая »
#15
14:26, 11 мая 2019

IBets
> Школьники
> Пытаются умножить на 0.33
Обидно. Я уже прошел умножение на 0.33. Как умножать на 1?

#16
14:59, 11 мая 2019

Vlad2001_MFS
В поле вещественных чисел 1 нейтральный элемент по мультипликативной бинарной операции. Поэтому ничего делать не надо

#17
15:03, 11 мая 2019

IBets
А на 2? Нам какое-то заклинание давали, но я его не помню.

#18
15:12, 11 мая 2019

Vlad2001_MFS
Я не помню

#19
17:03, 11 мая 2019

Vlad2001_MFS
> А на 2

mod 2 что ли ?

#20
17:57, 11 мая 2019

innuendo
Он это хочет

mov RAX, X
mov RBX, 2
mul RAX RBX   
#21
18:03, 11 мая 2019

innuendo
> mod 2 что ли ?
Да не, зачем мне остаток. Я про div.

Я надеюсь ты не всерьез воспринял мой вопрос про деление на 2?

IBets
> Он это хочет
Я в асме, конечно, не силен, но зачем для двойки 64битный регистр-то?

#22
18:35, 11 мая 2019

Vlad2001_MFS
На комуктере ты не заметишь разницы, если cделаешь как

mov bl 2
#23
20:36, 11 мая 2019

IBets
Конечно, так как bl - часть регистра RBX. Если мне не изменяет память, то bl - 8битный.

#24
16:32, 16 мая 2019

Все получилось, спасибо! Добавил цвет к вершинному шейдеру, который меняю через константный буфер.

Еще маленький вопрос:
Рисование треугольника из туториала в релизе (без моих правок), грузит CPU i5 2600K на 25-37% - это нормально? Что его так грузит?

P.S. Туториал 02 Vertices из DirectX9, который тоже рисует треугольник, вообще процессор не нагружает.

GeForce GTX 750 Ti

#25
16:49, 16 мая 2019

celsius
Ну обычный треугольник должен, нагружать CPU на 25% потому что у тебя 4 ядерный процессор и у тебя не догружен GPU. Если у тебя сложный шейдер, то нагрузка на GPU будет на 100%, а на CPU около нуля. Веселят додики на youtube которые говорят про раскрытие процессором видеокарты

#26
16:55, 16 мая 2019

А чего GPU дурака валяет? это же его расчеты и вывод? Он для этого предназначен и должен делать это лучше, разве нет?

#27
17:01, 16 мая 2019

celsius
Ну так ты рисуешь один тругольник. Время кадра очень низкое, поэтому СЗГ за промежуток времени чаще добавляет команды в командый буффер на исполнение GPU, из-за этого профайлер показывает высокую нагрузку. Сделай V-Sync и CPU не будет загружен

#28
17:04, 16 мая 2019

Понял, спасибо.

Было:
g_pSwapChain->Present(0, 0);

Стало:
g_pSwapChain->Present(1, 0);

и все нормально, нагрузки на CPU нет.

#29
18:17, 16 мая 2019

celsius
У тебя есть цикл обработки сообщений. У тебя нет многопоточности. Цикл работает постоянно, без задержек. Так как нет многопоточности, то твоя программа грузит одно ядро. То есть на одном ядре у тебя "без перерывов и выходных" крутится цикл, что загружает ядро. У тебя 4 ядра, 1 полностью занято программой, соответственно, загрузка процессора 25% плюс системные нагрузки в виде 2-3%.
Когда ты сделал g_pSwapChain->Present(1, 0), то твой цикл обработки сообщений стал прерываться, ожидая некого события. Это вертикальная синхронизация.

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

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