|
Sleeping Wombat Graphic API
1.010
swGraphicAPI
|
Struktura przechowująca materiał. More...
#include <MeshResources.h>
Public Member Functions | |
| RTTR_ENABLE (ResourceObject) | |
| MaterialObject (unsigned int id=WRONG_ID) | |
| MaterialObject (const MaterialObject *material) | |
| void | SetNullMaterial () |
| Ustawia materiał na wartości domyślne dla silnika. More... | |
| virtual std::string | GetResourceName () const override |
| Zwraca nazwę zasobu. To może być nazwa pliku, na podstawie którego stworzono zasób, ale zasadniczo interpretacja jest dowolna. | |
Public Member Functions inherited from ResourceObject | |
| ResourceObject (int id) | |
| void | SetID (unsigned int id) |
| Ustawia identyfikator obiektu. | |
| bool | CanDelete (unsigned int &objectRef) |
| sprawdza czy można zwolnić zmienną More... | |
| bool | CanDelete () |
| Funkcja informuje czy obiekt są obiektu, które odwołują się do assetu. More... | |
| void | AddAssetReference () |
| Dodaje odwołanie plikowe do assetu. More... | |
| void | AddObjectReference () |
| Dodaje odwołanie bezpośrednie obiektu do assetu. | |
| void | DeleteAssetReference () |
| Kasuje odwołanie plikowe do assetu. | |
| void | DeleteObjectReference () |
| Kasuje odwołanie bezpośrednie obiektu do assetu. | |
| unsigned int | GetID () |
| Zwraca identyfikator nadany assetowi. | |
Public Attributes | |
| friend | ObjectDeleter< MaterialObject > |
| DirectX::XMFLOAT4 | Diffuse |
| DirectX::XMFLOAT4 | Ambient |
| DirectX::XMFLOAT4 | Specular |
| DirectX::XMFLOAT4 | Emissive |
| float | Power |
Additional Inherited Members | |
Protected Member Functions inherited from ResourceObject | |
| virtual | ~ResourceObject ()=default |
| Nie każdy może skasować obiekt. | |
Struktura przechowująca materiał.
DirectX 11 nie ma własnych obiektów na materiały, ponieważ nie ma już domyślnego potoku przetwarzania na karcie graficznej. Na wszystko trzeba napisać shader i dostarcza mu się takie dane, jakie się chce dostarczyć. Dlatego informacja o materiałach będzie przekazywana z buforze stałych.
Struktura zachowuje się jak asset w związku z czym może być współdzielona przez wiele obiektów. Z tego względu nie można jej użyć bezpośrednio w ConstantPerMesh, ponieważ nie chcemy przekazywać do bufora stałych zmiennych odziedziczonych po ResourceObject. Zamiast tego trzeba tę strukture przepisać.
Zwracam uwagę, że tylko kanał Diffuse jest wektorem 4 wymiarowym, w którym składowa w jest odpowiedzialna za przezroczystość. Pozostałe są takie tylko dlatego, że jest to domyślny format przechowywania danych w rejestrach karty graficznej i przyspiesza to operację kopiowania.
| void MaterialObject::SetNullMaterial | ( | ) |
Ustawia materiał na wartości domyślne dla silnika.
Te wartości są najbardziej neutralne, w przypadku gdy nie ma materiału, a jest ustawiona tekstura. Wtedy shadery wymanażają jasność piksela przez 1.0 i nic sie nie zmienia.
1.8.9.1