Sleeping Wombat GUI  0.100
swGUI
Public Member Functions | Public Attributes | List of all members
MaterialObject Struct Reference

Struktura przechowująca materiał. More...

#include <MeshResources.h>

Inheritance diagram for MaterialObject:
ResourceObject EngineObject

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...
 

Detailed Description

Struktura przechowująca materiał.

Deprecated:
New material structure is coming soon

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.

See also
ConstantPerFrame

Constructor & Destructor Documentation

MaterialObject::MaterialObject ( unsigned int  id = WRONG_ID)
inline
MaterialObject::MaterialObject ( const MaterialObject material)

Member Function Documentation

virtual std::string MaterialObject::GetResourceName ( ) const
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.

Member Data Documentation

DirectX::XMFLOAT4 MaterialObject::Ambient
DirectX::XMFLOAT4 MaterialObject::Diffuse
DirectX::XMFLOAT4 MaterialObject::Emissive
friend MaterialObject::ObjectDeleter< MaterialObject >
DirectX::XMFLOAT4 MaterialObject::Specular

The documentation for this struct was generated from the following files: