Skip to content

Implement MixMaterial #33

@wahn

Description

@wahn

For the new test scene breakfast.pbrt we have to implement the MixMaterial:

> rg '"mix"' -B 1 -A 3
breakfast.pbrt
38-  MakeNamedMaterial "Ceramic_mix"
39:    "string type" [ "mix" ]
40-    "string namedmaterial1" [ "Ceramic_diffuse" ]
41-    "string namedmaterial2" [ "Ceramic_glossy" ]
42-    "rgb amount" [ 0.9000000059604645 0.9000000059604645 0.9000000059604645 ]
--
50-  MakeNamedMaterial "Ceramic2_mix"
51:    "string type" [ "mix" ]
52-    "string namedmaterial1" [ "Ceramic2_diffuse" ]
53-    "string namedmaterial2" [ "Ceramic2_glossy" ]
54-    "rgb amount" [ 0.8999999761581421 0.8999999761581421 0.8999999761581421 ]
--
73-  MakeNamedMaterial "Floor_Tiles_mix"
74:    "string type" [ "mix" ]
75-    "string namedmaterial1" [ "Floor_Tiles_diffuse" ]
76-    "string namedmaterial2" [ "Floor_Tiles_glossy" ]
77-    "rgb amount" [ 0.8796296417713165 0.8796296417713165 0.8796296417713165 ]
--
87-  MakeNamedMaterial "Frosted_Glass_mix"
88:    "string type" [ "mix" ]
89-    "string namedmaterial1" [ "Frosted_Glass_diffuse" ]
90-    "string namedmaterial2" [ "Frosted_Glass_trans" ]
91-    "rgb amount" [ 0.5 0.5 0.5 ]
--
99-  MakeNamedMaterial "Gold_Paint_mix"
100:    "string type" [ "mix" ]
101-    "string namedmaterial1" [ "Gold_Paint_diffuse" ]
102-    "string namedmaterial2" [ "Gold_Paint_glossy" ]
103-    "rgb amount" [ 0.7999999523162842 0.7999999523162842 0.7999999523162842 ]
--
111-  MakeNamedMaterial "Paint_Black_mix"
112:    "string type" [ "mix" ]
113-    "string namedmaterial1" [ "Paint_Black_diffuse" ]
114-    "string namedmaterial2" [ "Paint_Black_glossy" ]
115-    "rgb amount" [ 0.5 0.5 0.5 ]
--
123-  MakeNamedMaterial "Paint_White_Gloss_mix"
124:    "string type" [ "mix" ]
125-    "string namedmaterial1" [ "Paint_White_Gloss_diffuse" ]
126-    "string namedmaterial2" [ "Paint_White_Gloss_glossy" ]
127-    "rgb amount" [ 0.7999999523162842 0.7999999523162842 0.7999999523162842 ]
--
143-  MakeNamedMaterial "White_Marble_mix"
144:    "string type" [ "mix" ]
145-    "string namedmaterial1" [ "White_Marble_diffuse" ]
146-    "string namedmaterial2" [ "White_Marble_glossy" ]
147-    "rgb amount" [ 0.5 0.5 0.5 ]
--
159-  MakeNamedMaterial "White_Plastic_mix"
160:    "string type" [ "mix" ]
161-    "string namedmaterial1" [ "White_Plastic_diffuse" ]
162-    "string namedmaterial2" [ "White_Plastic_glossy" ]
163-    "rgb amount" [ 0.8796296343207359 0.8796296343207359 0.8796296343207359 ]

Here is the source code for the C++ implementation:

> rg -tcpp "class MixMaterial :" ~/git/github/pbrt-v3/src/
/usr/people/jan/git/github/pbrt-v3/src/materials/mixmat.h
48:class MixMaterial : public Material {

Currently we only get a reminder to do so (during rendering):

> ./target/release/examples/pest_test -i assets/scenes/breakfast.pbrt 
...
WorldBegin
TODO: CreateMixMaterial
...

Metadata

Metadata

Assignees

Labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions