- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
void Model::setPieceRotationAngleDegrees(uint pieceIndex, float angleDegrees)
{
check(pieceIndex < cfg_.getPiecesQuantity());
pieces_[pieceIndex].angle_ += angleDegrees;
if (pieces_[pieceIndex].angle_ == 360.0f)
{
pieces_[pieceIndex].angle_ = 0.0f;
}
}
scriptin 12.08.2011 17:26 # +2
Kirinyale 12.08.2011 17:47 # +1
setPieceRotationAngleDegrees(pieceIndex, cfg_.getPieceFinalAngleDegrees(pieceInde x));
Ничего, в понедельник автор выходит из отпуска... :)
SmackMyBitchUp 12.08.2011 21:48 # 0
Kirinyale 12.08.2011 21:55 # 0
absolut 12.08.2011 21:04 # 0
Kirinyale 12.08.2011 21:52 # 0
absolut 12.08.2011 22:10 # 0
Kirinyale 12.08.2011 22:34 # 0
http://govnokod.ru/5982
Почему-то не закончили.
absolut 13.08.2011 11:22 # 0
Но, я вот например, прогнал банальный тест с умножением двух float, а потом двух double.
С double получилось на ~10% быстрее. (VS 2010, Core2duo)
Kirinyale 13.08.2011 11:49 # 0
А серьёзные тормоза гораздо легче получить каким-нибудь другим способом. Например, не отсечь от рендера парочку полноэкранных (или близких к тому) полигонов с нулевой альфой. Или пересоздавать вершинные буферы половины объектов на каждый кадр из-за какого-нибудь бага в отслеживании его изменений.
absolut 13.08.2011 12:14 # 0
Например бесконечным циклом :)
А если по теме, то я бы не назвал 10% спичками. Сказав про DirectX и OpenGL вы в принципе подтвердили мои слова про конкретную программно-аппаратную платформу. Всё таки привидение к double при умножении float'ов в стандарте не прописано, стало быть надо разбирать каждый конкретный случай отдельно. Так что ждем результатов вашего эксперимента.
Kirinyale 13.08.2011 12:22 # 0
Речь о том, что умножение двух float - это далеко не 100% от того, на что в такой игрушке тратятся ресурсы процессора. Да и неизвестно ещё, как то же умножение работает на GPU (новые карты, насколько помню, fixed pipeline уже подковёрно эмулируют на шейдерах). Так что простой эксперимент с умножением даёт мало гарантии, что в итоге это действительно будут 10%. Посмотрим.
Fai 13.08.2011 12:25 # −1
guest 13.08.2011 17:07 # +2
градусы хранить нада в целочисленном типе, если нужна неебическая точность, то тада в радианах в double
если еще подумать, то мона обернуть градусы в отдельный класс, чтобы всегда обеспечить условия 0 => && <= 360 imho