Skip to content

Commit 2ab628c

Browse files
committed
Demo - adapt toon shading to 3.01.04.beta1
1 parent 8889bf1 commit 2ab628c

File tree

1 file changed

+35
-32
lines changed

1 file changed

+35
-32
lines changed

tutorials/25_toon/main.cpp

Lines changed: 35 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -68,18 +68,21 @@ int main()
6868
CHECK(rprSceneAttachLight(matballScene.m_scene, light));
6969
}
7070

71+
// factor for 3.01.04 SDK release
72+
const float factor = 0.25f;
73+
7174

7275
// 3 tones toon
7376
{
7477
rpr_material_node toonRamp = nullptr;
7578
CHECK( rprMaterialSystemCreateNode(matballScene.m_matsys, RPR_MATERIAL_NODE_TOON_RAMP, &toonRamp));
7679
g_gc.GCAdd(toonRamp);
7780

78-
CHECK( rprMaterialNodeSetInputFByKey(toonRamp,RPR_MATERIAL_INPUT_POSITION1, 0.7f, 0.0f, 0.0f, 0.f));
79-
CHECK( rprMaterialNodeSetInputFByKey(toonRamp,RPR_MATERIAL_INPUT_POSITION2, 0.9f, 0.0f, 0.0f, 0.f));
81+
CHECK( rprMaterialNodeSetInputFByKey(toonRamp,RPR_MATERIAL_INPUT_POSITION1, 0.7f*factor, 0.0f, 0.0f, 0.f));
82+
CHECK( rprMaterialNodeSetInputFByKey(toonRamp,RPR_MATERIAL_INPUT_POSITION2, 0.9f*factor, 0.0f, 0.0f, 0.f));
8083

81-
CHECK( rprMaterialNodeSetInputFByKey(toonRamp,RPR_MATERIAL_INPUT_RANGE1, 0.0f, 0.0f, 0.0f, 0.f));
82-
CHECK( rprMaterialNodeSetInputFByKey(toonRamp,RPR_MATERIAL_INPUT_RANGE2, 0.0f, 0.0f, 0.0f, 0.f));
84+
CHECK( rprMaterialNodeSetInputFByKey(toonRamp,RPR_MATERIAL_INPUT_RANGE1, 0.0f*factor, 0.0f, 0.0f, 0.f));
85+
CHECK( rprMaterialNodeSetInputFByKey(toonRamp,RPR_MATERIAL_INPUT_RANGE2, 0.0f*factor, 0.0f, 0.0f, 0.f));
8386

8487
CHECK( rprMaterialNodeSetInputFByKey(toonRamp,RPR_MATERIAL_INPUT_HIGHLIGHT, 199.0f/255.0f, 230.0f/255.0f, 116.0f/255.0f, 0.f));
8588
CHECK( rprMaterialNodeSetInputFByKey(toonRamp,RPR_MATERIAL_INPUT_MID, 112.0f/255.0f, 176.0f/255.0f, 75.0f/255.0f, 0.f));
@@ -108,11 +111,11 @@ int main()
108111
CHECK( rprMaterialSystemCreateNode(matballScene.m_matsys, RPR_MATERIAL_NODE_TOON_RAMP, &toonRamp));
109112
g_gc.GCAdd(toonRamp);
110113

111-
CHECK( rprMaterialNodeSetInputFByKey(toonRamp,RPR_MATERIAL_INPUT_POSITION1, 0.6f, 0.0f, 0.0f, 0.f));
112-
CHECK( rprMaterialNodeSetInputFByKey(toonRamp,RPR_MATERIAL_INPUT_POSITION2, 0.9f, 0.0f, 0.0f, 0.f));
114+
CHECK( rprMaterialNodeSetInputFByKey(toonRamp,RPR_MATERIAL_INPUT_POSITION1, 0.6f*factor, 0.0f, 0.0f, 0.f));
115+
CHECK( rprMaterialNodeSetInputFByKey(toonRamp,RPR_MATERIAL_INPUT_POSITION2, 0.9f*factor, 0.0f, 0.0f, 0.f));
113116

114-
CHECK( rprMaterialNodeSetInputFByKey(toonRamp,RPR_MATERIAL_INPUT_RANGE1, 0.0f, 0.0f, 0.0f, 0.f));
115-
CHECK( rprMaterialNodeSetInputFByKey(toonRamp,RPR_MATERIAL_INPUT_RANGE2, 0.0f, 0.0f, 0.0f, 0.f));
117+
CHECK( rprMaterialNodeSetInputFByKey(toonRamp,RPR_MATERIAL_INPUT_RANGE1, 0.0f*factor, 0.0f, 0.0f, 0.f));
118+
CHECK( rprMaterialNodeSetInputFByKey(toonRamp,RPR_MATERIAL_INPUT_RANGE2, 0.0f*factor, 0.0f, 0.0f, 0.f));
116119

117120
CHECK( rprMaterialNodeSetInputFByKey(toonRamp,RPR_MATERIAL_INPUT_HIGHLIGHT, 246.0f/255.0f, 235.0f/255.0f, 171.0f/255.0f, 0.f));
118121
CHECK( rprMaterialNodeSetInputFByKey(toonRamp,RPR_MATERIAL_INPUT_MID, 246.0f/255.0f, 235.0f/255.0f, 171.0f/255.0f, 0.f));
@@ -142,11 +145,11 @@ int main()
142145
CHECK( rprMaterialSystemCreateNode(matballScene.m_matsys, RPR_MATERIAL_NODE_TOON_RAMP, &toonRamp));
143146
g_gc.GCAdd(toonRamp);
144147

145-
CHECK( rprMaterialNodeSetInputFByKey(toonRamp,RPR_MATERIAL_INPUT_POSITION1, 0.6f, 0.0f, 0.0f, 0.f)); // limit between Shadow and Mid
146-
CHECK( rprMaterialNodeSetInputFByKey(toonRamp,RPR_MATERIAL_INPUT_POSITION2, 0.95f, 0.0f, 0.0f, 0.f)); // limit between Highlight and Mid
148+
CHECK( rprMaterialNodeSetInputFByKey(toonRamp,RPR_MATERIAL_INPUT_POSITION1, 0.6f*factor, 0.0f, 0.0f, 0.f)); // limit between Shadow and Mid
149+
CHECK( rprMaterialNodeSetInputFByKey(toonRamp,RPR_MATERIAL_INPUT_POSITION2, 0.95f*factor, 0.0f, 0.0f, 0.f)); // limit between Highlight and Mid
147150

148-
CHECK( rprMaterialNodeSetInputFByKey(toonRamp,RPR_MATERIAL_INPUT_RANGE2, 0.1f, 0.0f, 0.0f, 0.f)); // interp range between highlight and mid
149-
CHECK( rprMaterialNodeSetInputFByKey(toonRamp,RPR_MATERIAL_INPUT_RANGE1, 0.1f, 0.0f, 0.0f, 0.f)); // interp range between mid and shadow
151+
CHECK( rprMaterialNodeSetInputFByKey(toonRamp,RPR_MATERIAL_INPUT_RANGE2, 0.1f*factor, 0.0f, 0.0f, 0.f)); // interp range between highlight and mid
152+
CHECK( rprMaterialNodeSetInputFByKey(toonRamp,RPR_MATERIAL_INPUT_RANGE1, 0.1f*factor, 0.0f, 0.0f, 0.f)); // interp range between mid and shadow
150153

151154
CHECK( rprMaterialNodeSetInputFByKey(toonRamp,RPR_MATERIAL_INPUT_HIGHLIGHT, 199.0f/255.0f, 230.0f/255.0f, 116.0f/255.0f, 0.f));
152155
CHECK( rprMaterialNodeSetInputFByKey(toonRamp,RPR_MATERIAL_INPUT_MID, 112.0f/255.0f, 176.0f/255.0f, 75.0f/255.0f, 0.f));
@@ -176,11 +179,11 @@ int main()
176179
CHECK( rprMaterialSystemCreateNode(matballScene.m_matsys, RPR_MATERIAL_NODE_TOON_RAMP, &toonRamp));
177180
g_gc.GCAdd(toonRamp);
178181

179-
CHECK( rprMaterialNodeSetInputFByKey(toonRamp,RPR_MATERIAL_INPUT_POSITION1, 0.7f, 0.0f, 0.0f, 0.f));
180-
CHECK( rprMaterialNodeSetInputFByKey(toonRamp,RPR_MATERIAL_INPUT_POSITION2, 0.9f, 0.0f, 0.0f, 0.f));
182+
CHECK( rprMaterialNodeSetInputFByKey(toonRamp,RPR_MATERIAL_INPUT_POSITION1, 0.7f*factor, 0.0f, 0.0f, 0.f));
183+
CHECK( rprMaterialNodeSetInputFByKey(toonRamp,RPR_MATERIAL_INPUT_POSITION2, 0.9f*factor, 0.0f, 0.0f, 0.f));
181184

182-
CHECK( rprMaterialNodeSetInputFByKey(toonRamp,RPR_MATERIAL_INPUT_RANGE2, 0.0f, 0.0f, 0.0f, 0.f)); // interp range between highlight and mid
183-
CHECK( rprMaterialNodeSetInputFByKey(toonRamp,RPR_MATERIAL_INPUT_RANGE1, 0.2f, 0.0f, 0.0f, 0.f)); // interp range between mid and shadow
185+
CHECK( rprMaterialNodeSetInputFByKey(toonRamp,RPR_MATERIAL_INPUT_RANGE2, 0.0f*factor, 0.0f, 0.0f, 0.f)); // interp range between highlight and mid
186+
CHECK( rprMaterialNodeSetInputFByKey(toonRamp,RPR_MATERIAL_INPUT_RANGE1, 0.2f*factor, 0.0f, 0.0f, 0.f)); // interp range between mid and shadow
184187

185188
CHECK( rprMaterialNodeSetInputFByKey(toonRamp,RPR_MATERIAL_INPUT_HIGHLIGHT, 140.0f/255.0f, 209.0f/255.0f, 241.0f/255.0f, 0.f));
186189
CHECK( rprMaterialNodeSetInputFByKey(toonRamp,RPR_MATERIAL_INPUT_MID , 140.0f/255.0f, 209.0f/255.0f, 241.0f/255.0f, 0.f));
@@ -218,16 +221,16 @@ int main()
218221
CHECK( rprMaterialNodeSetInputFByKey(toonRamp,RPR_MATERIAL_INPUT_HIGHLIGHT, 229.0f/255.0f, 220.0f/255.0f, 184.0f/255.0f, 0.f));
219222
CHECK( rprMaterialNodeSetInputFByKey(toonRamp,RPR_MATERIAL_INPUT_HIGHLIGHT2, 236.0f/255.0f, 220.0f/255.0f, 223.0f/255.0f, 0.f));
220223

221-
CHECK( rprMaterialNodeSetInputFByKey(toonRamp,RPR_MATERIAL_INPUT_RANGE2, 0.1f, 0.0f, 0.0f, 0.f)); // interp range between highlight and mid
222-
CHECK( rprMaterialNodeSetInputFByKey(toonRamp,RPR_MATERIAL_INPUT_RANGE1, 0.1f, 0.0f, 0.0f, 0.f)); // interp range between mid and shadow
224+
CHECK( rprMaterialNodeSetInputFByKey(toonRamp,RPR_MATERIAL_INPUT_RANGE2, 0.1f*factor, 0.0f, 0.0f, 0.f)); // interp range between highlight and mid
225+
CHECK( rprMaterialNodeSetInputFByKey(toonRamp,RPR_MATERIAL_INPUT_RANGE1, 0.1f*factor, 0.0f, 0.0f, 0.f)); // interp range between mid and shadow
223226

224-
CHECK( rprMaterialNodeSetInputFByKey(toonRamp,RPR_MATERIAL_INPUT_POSITION_HIGHLIGHT , 0.9999f, 0.0f, 0.0f, 0.f)); // limit HIGHLIGHT/HIGHLIGHT2
225-
CHECK( rprMaterialNodeSetInputFByKey(toonRamp,RPR_MATERIAL_INPUT_POSITION2, 0.95f, 0.0f, 0.0f, 0.f)); // limit MID/HIGHLIGHT
226-
CHECK( rprMaterialNodeSetInputFByKey(toonRamp,RPR_MATERIAL_INPUT_POSITION1, 0.6f, 0.0f, 0.0f, 0.f)); // limit SHADOW/MID
227-
CHECK( rprMaterialNodeSetInputFByKey(toonRamp,RPR_MATERIAL_INPUT_POSITION_SHADOW , 0.4f, 0.0f, 0.0f, 0.f)); // limit SHADOW2/SHADOW
227+
CHECK( rprMaterialNodeSetInputFByKey(toonRamp,RPR_MATERIAL_INPUT_POSITION_HIGHLIGHT , 0.9999f*factor, 0.0f, 0.0f, 0.f)); // limit HIGHLIGHT/HIGHLIGHT2
228+
CHECK( rprMaterialNodeSetInputFByKey(toonRamp,RPR_MATERIAL_INPUT_POSITION2, 0.95f*factor, 0.0f, 0.0f, 0.f)); // limit MID/HIGHLIGHT
229+
CHECK( rprMaterialNodeSetInputFByKey(toonRamp,RPR_MATERIAL_INPUT_POSITION1, 0.6f*factor, 0.0f, 0.0f, 0.f)); // limit SHADOW/MID
230+
CHECK( rprMaterialNodeSetInputFByKey(toonRamp,RPR_MATERIAL_INPUT_POSITION_SHADOW , 0.4f*factor, 0.0f, 0.0f, 0.f)); // limit SHADOW2/SHADOW
228231

229-
CHECK( rprMaterialNodeSetInputFByKey(toonRamp,RPR_MATERIAL_INPUT_RANGE_SHADOW, 0.1f, 0.0f, 0.0f, 0.f));
230-
CHECK( rprMaterialNodeSetInputFByKey(toonRamp,RPR_MATERIAL_INPUT_RANGE_HIGHLIGHT, 0.1f, 0.0f, 0.0f, 0.f));
232+
CHECK( rprMaterialNodeSetInputFByKey(toonRamp,RPR_MATERIAL_INPUT_RANGE_SHADOW, 0.1f*factor, 0.0f, 0.0f, 0.f));
233+
CHECK( rprMaterialNodeSetInputFByKey(toonRamp,RPR_MATERIAL_INPUT_RANGE_HIGHLIGHT, 0.1f*factor, 0.0f, 0.0f, 0.f));
231234

232235
CHECK( rprMaterialNodeSetInputUByKey(toonRamp,RPR_MATERIAL_INPUT_TOON_5_COLORS, 1));
233236

@@ -268,16 +271,16 @@ int main()
268271
CHECK( rprMaterialNodeSetInputFByKey(toonRamp,RPR_MATERIAL_INPUT_HIGHLIGHT, 229.0f/255.0f, 220.0f/255.0f, 184.0f/255.0f, 0.f));
269272
CHECK( rprMaterialNodeSetInputFByKey(toonRamp,RPR_MATERIAL_INPUT_HIGHLIGHT2, 236.0f/255.0f, 220.0f/255.0f, 223.0f/255.0f, 0.f));
270273

271-
CHECK( rprMaterialNodeSetInputFByKey(toonRamp,RPR_MATERIAL_INPUT_RANGE2, 0.1f, 0.0f, 0.0f, 0.f)); // interp range between highlight and mid
272-
CHECK( rprMaterialNodeSetInputFByKey(toonRamp,RPR_MATERIAL_INPUT_RANGE1, 0.1f, 0.0f, 0.0f, 0.f)); // interp range between mid and shadow
274+
CHECK( rprMaterialNodeSetInputFByKey(toonRamp,RPR_MATERIAL_INPUT_RANGE2, 0.1f*factor, 0.0f, 0.0f, 0.f)); // interp range between highlight and mid
275+
CHECK( rprMaterialNodeSetInputFByKey(toonRamp,RPR_MATERIAL_INPUT_RANGE1, 0.1f*factor, 0.0f, 0.0f, 0.f)); // interp range between mid and shadow
273276

274-
CHECK( rprMaterialNodeSetInputFByKey(toonRamp,RPR_MATERIAL_INPUT_POSITION_HIGHLIGHT , 0.9999f, 0.0f, 0.0f, 0.f)); // limit HIGHLIGHT/HIGHLIGHT2
275-
CHECK( rprMaterialNodeSetInputFByKey(toonRamp,RPR_MATERIAL_INPUT_POSITION2, 0.95f, 0.0f, 0.0f, 0.f)); // limit MID/HIGHLIGHT
276-
CHECK( rprMaterialNodeSetInputFByKey(toonRamp,RPR_MATERIAL_INPUT_POSITION1, 0.6f, 0.0f, 0.0f, 0.f)); // limit SHADOW/MID
277-
CHECK( rprMaterialNodeSetInputFByKey(toonRamp,RPR_MATERIAL_INPUT_POSITION_SHADOW , 0.4f, 0.0f, 0.0f, 0.f)); // limit SHADOW2/SHADOW
277+
CHECK( rprMaterialNodeSetInputFByKey(toonRamp,RPR_MATERIAL_INPUT_POSITION_HIGHLIGHT , 0.9999f*factor, 0.0f, 0.0f, 0.f)); // limit HIGHLIGHT/HIGHLIGHT2
278+
CHECK( rprMaterialNodeSetInputFByKey(toonRamp,RPR_MATERIAL_INPUT_POSITION2, 0.95f*factor, 0.0f, 0.0f, 0.f)); // limit MID/HIGHLIGHT
279+
CHECK( rprMaterialNodeSetInputFByKey(toonRamp,RPR_MATERIAL_INPUT_POSITION1, 0.6f*factor, 0.0f, 0.0f, 0.f)); // limit SHADOW/MID
280+
CHECK( rprMaterialNodeSetInputFByKey(toonRamp,RPR_MATERIAL_INPUT_POSITION_SHADOW , 0.4f*factor, 0.0f, 0.0f, 0.f)); // limit SHADOW2/SHADOW
278281

279-
CHECK( rprMaterialNodeSetInputFByKey(toonRamp,RPR_MATERIAL_INPUT_RANGE_SHADOW, 0.1f, 0.0f, 0.0f, 0.f));
280-
CHECK( rprMaterialNodeSetInputFByKey(toonRamp,RPR_MATERIAL_INPUT_RANGE_HIGHLIGHT, 0.1f, 0.0f, 0.0f, 0.f));
282+
CHECK( rprMaterialNodeSetInputFByKey(toonRamp,RPR_MATERIAL_INPUT_RANGE_SHADOW, 0.1f*factor, 0.0f, 0.0f, 0.f));
283+
CHECK( rprMaterialNodeSetInputFByKey(toonRamp,RPR_MATERIAL_INPUT_RANGE_HIGHLIGHT, 0.1f*factor, 0.0f, 0.0f, 0.f));
281284

282285
CHECK( rprMaterialNodeSetInputUByKey(toonRamp,RPR_MATERIAL_INPUT_TOON_5_COLORS, 1));
283286

0 commit comments

Comments
 (0)