import Material; import InputGeometry; struct ParallaxMaterial : IMaterial { Texture2D diffuseTexture; Texture2D specularTexture; Texture2D displacementTexture; SamplerState textureSampler; float specularity; typedef BlinnPhong BRDF; BlinnPhong prepare(InputGeometry geometry) { BlinnPhong blinn; blinn.baseColor = diffuseTexture.Sample(textureSampler, geometry.getTexCoords()).xyz; blinn.specularColor = specularTexture.Sample(textureSampler, geometry.getTexCoords()).xyz; blinn.specular = specularity; return blinn; } };