Войти
Urho3DФорумЗАДАВАЙТЕ ВОПРОСЫ

Когда используется BILLBOARD?

#0
13:14, 29 июня 2018

Когда используется SHADOW или там SKINNED понятно. А вот используется ли BILLBOARD вне частиц я не понял. Я могу как то сделать BILLBOARD модель например?

#1
19:48, 29 июня 2018

radio
Я про Урху конкретно. Что мне надо сделать чтоб в шейдер автоматически попал дефайн для билборда?

#2
20:53, 29 июня 2018

Мне тоже интересен этот вопрос. Думал, что оно делается в шейдерах как-то матрицей трансформации, типа где-то 0 поставить и модель будет заморожена по осям. Но похоже, что там рассчитывают каждый кадр угол поворота, относительно камеры.  В BillboardSet::UpdateBatches это видно. Себе пока сделал свой компонент, и в нем что-то типа:
node->LookAt(cameraNode->GetPosition());
node->SetRotation(node->GetRotation()*Quaternion(0.0,0.0,-1.0,0.0));

#3
22:48, 29 июня 2018

А! Есть же пример оказывается:

        auto* billboardObject = smokeNode->CreateComponent<BillboardSet>();
        billboardObject->SetNumBillboards(NUM_BILLBOARDS);
        billboardObject->SetMaterial(cache->GetResource<Material>("Materials/LitSmoke.xml"));
        billboardObject->SetSorted(true);

        for (unsigned j = 0; j < NUM_BILLBOARDS; ++j)
        {
            Billboard* bb = billboardObject->GetBillboard(j);
            bb->position_ = Vector3(Random(12.0f) - 6.0f, Random(8.0f) - 4.0f, Random(12.0f) - 6.0f);
            bb->size_ = Vector2(Random(2.0f) + 3.0f, Random(2.0f) + 3.0f);
            bb->rotation_ = Random() * 360.0f;
            bb->enabled_ = true;
        }

        // After modifying the billboards, they need to be "committed" so that the BillboardSet updates its internals
        billboardObject->Commit();
Urho3DФорумЗАДАВАЙТЕ ВОПРОСЫ

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