Sleeping Wombat Graphic API  1.010
swGraphicAPI
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

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.
 

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

Member Function Documentation

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.


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