Sleeping Wombat GUI
0.100
swGUI
|
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. More... | |
Public Member Functions inherited from ResourceObject | |
ResourceObject (int id) | |
void | SetID (unsigned int id) |
Ustawia identyfikator obiektu. More... | |
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. More... | |
void | DeleteAssetReference () |
Kasuje odwołanie plikowe do assetu. More... | |
void | DeleteObjectReference () |
Kasuje odwołanie bezpośrednie obiektu do assetu. More... | |
unsigned int | GetID () |
Zwraca identyfikator nadany assetowi. More... | |
Public Member Functions inherited from EngineObject | |
TypeID | GetType () const |
std::string | GetTypeName () const |
virtual void | Serialize (ISerializer *ser) const |
Implements default serialization. Serializes only declared properties. More... | |
virtual void | Deserialize (IDeserializer *deser) |
Implements default deserialization. More... | |
virtual Size | MemorySize () |
template<typename TargetType > | |
TargetType * | DynamicCast () |
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. More... | |
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.
|
inline |
MaterialObject::MaterialObject | ( | const MaterialObject * | material | ) |
|
inlineoverridevirtual |
Zwraca nazwę zasobu. To może być nazwa pliku, na podstawie którego stworzono zasób, ale zasadniczo interpretacja jest dowolna.
Implements ResourceObject.
MaterialObject::RTTR_ENABLE | ( | ResourceObject | ) |
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.
DirectX::XMFLOAT4 MaterialObject::Ambient |
DirectX::XMFLOAT4 MaterialObject::Diffuse |
DirectX::XMFLOAT4 MaterialObject::Emissive |
friend MaterialObject::ObjectDeleter< MaterialObject > |
&MaterialObject::Diffuse BIND_AS_PTR &MaterialObject::Ambient BIND_AS_PTR & MaterialObject::Power |
DirectX::XMFLOAT4 MaterialObject::Specular |