2020-06-02 11:46:18 +02:00
|
|
|
import Common;
|
|
|
|
|
import BRDF;
|
2020-08-06 00:54:43 +02:00
|
|
|
import MaterialParameter;
|
2020-06-02 11:46:18 +02:00
|
|
|
|
|
|
|
|
interface IMaterial
|
|
|
|
|
{
|
|
|
|
|
associatedtype BRDF : IBRDF;
|
2020-08-06 00:54:43 +02:00
|
|
|
BRDF prepare(MaterialFragmentParameter input);
|
2020-09-19 14:36:50 +02:00
|
|
|
|
|
|
|
|
float3 getWorldOffset();
|
|
|
|
|
|
|
|
|
|
float3 getBaseColor(MaterialFragmentParameter input);
|
|
|
|
|
float getMetallic(MaterialFragmentParameter input);
|
|
|
|
|
float3 getNormal(MaterialFragmentParameter input);
|
|
|
|
|
float getSpecular(MaterialFragmentParameter input);
|
|
|
|
|
float getRoughness(MaterialFragmentParameter input);
|
|
|
|
|
float getSheen(MaterialFragmentParameter input);
|
2020-06-02 11:46:18 +02:00
|
|
|
};
|
2020-10-03 11:00:10 +02:00
|
|
|
|
2021-05-06 17:02:10 +02:00
|
|
|
layout(set = INDEX_MATERIAL, binding = 0, std430)
|
2022-11-15 12:19:11 +01:00
|
|
|
ParameterBlock<IMaterial> gMaterial;
|