Skip to content

Commit c2e1093

Browse files
committed
Update tutorials for upcoming Mitsuba 3.6.0 release
1 parent 42fffc6 commit c2e1093

22 files changed

+725
-882
lines changed

how_to_guides/image_io_and_manipulation.ipynb

+26-40
Large diffs are not rendered by default.

how_to_guides/mesh_io_and_manipulation.ipynb

+26-31
Large diffs are not rendered by default.

how_to_guides/transformation_toolbox.ipynb

+120-61
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@
102102
{
103103
"data": {
104104
"text/plain": [
105-
"[1.0, 2.0, 3.0]"
105+
"[1, 2, 3]"
106106
]
107107
},
108108
"execution_count": 3,
@@ -172,9 +172,14 @@
172172
{
173173
"data": {
174174
"text/plain": [
175-
"[[3, 3, 3],\n",
176-
" [2, 2, 2],\n",
177-
" [3, 3, 3]]"
175+
"Transform[\n",
176+
" matrix=[[3, 3, 3],\n",
177+
" [2, 2, 2],\n",
178+
" [3, 3, 3]],\n",
179+
" inverse_transpose=[[-nan, -nan, -nan],\n",
180+
" [-nan, -nan, -nan],\n",
181+
" [-nan, -nan, -nan]]\n",
182+
"]"
178183
]
179184
},
180185
"execution_count": 4,
@@ -241,10 +246,16 @@
241246
{
242247
"data": {
243248
"text/plain": [
244-
"[[1, 0, 0, 10],\n",
245-
" [0, 1, 0, 20],\n",
246-
" [0, 0, 1, 30],\n",
247-
" [0, 0, 0, 1]]"
249+
"Transform[\n",
250+
" matrix=[[1, 0, 0, 10],\n",
251+
" [0, 1, 0, 20],\n",
252+
" [0, 0, 1, 30],\n",
253+
" [0, 0, 0, 1]],\n",
254+
" inverse_transpose=[[1, 0, 0, 0],\n",
255+
" [0, 1, 0, 0],\n",
256+
" [0, 0, 1, 0],\n",
257+
" [-10, -20, -30, 1]]\n",
258+
"]"
248259
]
249260
},
250261
"execution_count": 5,
@@ -253,7 +264,7 @@
253264
}
254265
],
255266
"source": [
256-
"mi.Transform4f.translate([10, 20, 30])"
267+
"mi.Transform4f().translate([10, 20, 30])"
257268
]
258269
},
259270
{
@@ -271,10 +282,16 @@
271282
{
272283
"data": {
273284
"text/plain": [
274-
"[[10, 0, 0, 0],\n",
275-
" [0, 20, 0, 0],\n",
276-
" [0, 0, 30, 0],\n",
277-
" [0, 0, 0, 1]]"
285+
"Transform[\n",
286+
" matrix=[[10, 0, 0, 0],\n",
287+
" [0, 20, 0, 0],\n",
288+
" [0, 0, 30, 0],\n",
289+
" [0, 0, 0, 1]],\n",
290+
" inverse_transpose=[[0.1, 0, 0, 0],\n",
291+
" [0, 0.05, 0, 0],\n",
292+
" [0, 0, 0.0333333, 0],\n",
293+
" [0, 0, 0, 1]]\n",
294+
"]"
278295
]
279296
},
280297
"execution_count": 6,
@@ -283,7 +300,7 @@
283300
}
284301
],
285302
"source": [
286-
"mi.Transform4f.scale([10, 20, 30])"
303+
"mi.Transform4f().scale([10, 20, 30])"
287304
]
288305
},
289306
{
@@ -301,10 +318,16 @@
301318
{
302319
"data": {
303320
"text/plain": [
304-
"[[-4.37114e-08, 0, 1, 0],\n",
305-
" [0, 1, 0, 0],\n",
306-
" [-1, 0, -4.37114e-08, 0],\n",
307-
" [0, 0, 0, 1]]"
321+
"Transform[\n",
322+
" matrix=[[-4.37114e-08, 0, 1, 0],\n",
323+
" [0, 1, 0, 0],\n",
324+
" [-1, 0, -4.37114e-08, 0],\n",
325+
" [0, 0, 0, 1]],\n",
326+
" inverse_transpose=[[-4.37114e-08, 0, 1, 0],\n",
327+
" [0, 1, 0, 0],\n",
328+
" [-1, 0, -4.37114e-08, 0],\n",
329+
" [0, 0, 0, 1]]\n",
330+
"]"
308331
]
309332
},
310333
"execution_count": 7,
@@ -313,7 +336,7 @@
313336
}
314337
],
315338
"source": [
316-
"mi.Transform4f.rotate(axis=[0, 1, 0], angle=90)"
339+
"mi.Transform4f().rotate(axis=[0, 1, 0], angle=90)"
317340
]
318341
},
319342
{
@@ -331,10 +354,16 @@
331354
{
332355
"data": {
333356
"text/plain": [
334-
"[[-1, 0, 0, 0],\n",
335-
" [0, 1, 0, 0],\n",
336-
" [0, 0, -1, 2],\n",
337-
" [0, 0, 0, 1]]"
357+
"Transform[\n",
358+
" matrix=[[-1, 0, 0, 0],\n",
359+
" [0, 1, 0, 0],\n",
360+
" [0, 0, -1, 2],\n",
361+
" [0, 0, 0, 1]],\n",
362+
" inverse_transpose=[[-1, 0, 0, 0],\n",
363+
" [0, 1, 0, 0],\n",
364+
" [0, 0, -1, 0],\n",
365+
" [0, 0, 2, 1]]\n",
366+
"]"
338367
]
339368
},
340369
"execution_count": 8,
@@ -343,7 +372,7 @@
343372
}
344373
],
345374
"source": [
346-
"mi.Transform4f.look_at(origin=[0, 0, 2], target=[0, 0, 0], up=[0, 1, 0])"
375+
"mi.Transform4f().look_at(origin=[0, 0, 2], target=[0, 0, 0], up=[0, 1, 0])"
347376
]
348377
},
349378
{
@@ -371,16 +400,22 @@
371400
"name": "stdout",
372401
"output_type": "stream",
373402
"text": [
374-
"[[1, 0, 0, 0],\n",
375-
" [0, 1, 0, 0],\n",
376-
" [0, 0, 1.0101, -0.10101],\n",
377-
" [0, 0, 1, 0]]\n"
403+
"Transform[\n",
404+
" matrix=[[1, 0, 0, 0],\n",
405+
" [0, 1, 0, 0],\n",
406+
" [0, 0, 1.0101, -0.10101],\n",
407+
" [0, 0, 1, 0]],\n",
408+
" inverse_transpose=[[1, 0, 0, 0],\n",
409+
" [0, 1, 0, 0],\n",
410+
" [0, 0, 0, -9.9],\n",
411+
" [0, 0, 1, 10]]\n",
412+
"]\n"
378413
]
379414
},
380415
{
381416
"data": {
382417
"text/plain": [
383-
"[0.9999998807907104, -0.9999998807907104, 0.9595960378646851]"
418+
"[1, -1, 0.959596]"
384419
]
385420
},
386421
"execution_count": 9,
@@ -389,7 +424,7 @@
389424
}
390425
],
391426
"source": [
392-
"trafo = mi.Transform4f.perspective(fov=90, near=0.1, far=10)\n",
427+
"trafo = mi.Transform4f().perspective(fov=90, near=0.1, far=10)\n",
393428
"print(trafo)\n",
394429
"trafo @ mi.Point3f(2, -2, 2)"
395430
]
@@ -417,16 +452,22 @@
417452
"name": "stdout",
418453
"output_type": "stream",
419454
"text": [
420-
"[[1, 0, 0, 0],\n",
421-
" [0, 1, 0, 0],\n",
422-
" [0, 0, 0.10101, -0.010101],\n",
423-
" [0, 0, 0, 1]]\n"
455+
"Transform[\n",
456+
" matrix=[[1, 0, 0, 0],\n",
457+
" [0, 1, 0, 0],\n",
458+
" [0, 0, 0.10101, -0.010101],\n",
459+
" [0, 0, 0, 1]],\n",
460+
" inverse_transpose=[[1, 0, 0, 0],\n",
461+
" [0, 1, 0, 0],\n",
462+
" [0, 0, 9.9, 0],\n",
463+
" [0, 0, 0.1, 1]]\n",
464+
"]\n"
424465
]
425466
},
426467
{
427468
"data": {
428469
"text/plain": [
429-
"[1.0, 2.0, 0.2929292917251587]"
470+
"[1, 2, 0.292929]"
430471
]
431472
},
432473
"execution_count": 10,
@@ -435,7 +476,7 @@
435476
}
436477
],
437478
"source": [
438-
"trafo = mi.Transform4f.orthographic(near=0.1, far=10)\n",
479+
"trafo = mi.Transform4f().orthographic(near=0.1, far=10)\n",
439480
"print(trafo)\n",
440481
"trafo @ mi.Point3f(1, 2, 3)"
441482
]
@@ -452,7 +493,7 @@
452493
" \n",
453494
"</div>\n",
454495
"\n",
455-
"`mi.Transform4f.to_frame(frame)` is the matrix representation of the function `frame.to_local()`"
496+
"`mi.Transform4f().to_frame(frame)` is the matrix representation of the function `frame.to_local()`"
456497
]
457498
},
458499
{
@@ -463,10 +504,16 @@
463504
{
464505
"data": {
465506
"text/plain": [
466-
"[[0, 0, 3, 0],\n",
467-
" [0, 2, 0, 0],\n",
468-
" [1, 0, 0, 0],\n",
469-
" [0, 0, 0, 1]]"
507+
"Transform[\n",
508+
" matrix=[[0, 0, 3, 0],\n",
509+
" [0, 2, 0, 0],\n",
510+
" [1, 0, 0, 0],\n",
511+
" [0, 0, 0, 1]],\n",
512+
" inverse_transpose=[[0, 0, 3, 0],\n",
513+
" [0, 2, 0, 0],\n",
514+
" [1, 0, 0, 0],\n",
515+
" [0, 0, 0, 1]]\n",
516+
"]"
470517
]
471518
},
472519
"execution_count": 11,
@@ -480,7 +527,7 @@
480527
" [0, 2, 0],\n",
481528
" [3, 0, 0],\n",
482529
")\n",
483-
"mi.Transform4f.to_frame(frame)"
530+
"mi.Transform4f().to_frame(frame)"
484531
]
485532
},
486533
{
@@ -507,15 +554,15 @@
507554
"name": "stdout",
508555
"output_type": "stream",
509556
"text": [
510-
"t @ v=[3.0, 8.0, 15.0]\n",
511-
"t @ p=[3.0, 9.0, 17.0]\n",
512-
"t @ n=[1.0, 0.0, 0.0]\n"
557+
"t @ v=[3, 8, 15]\n",
558+
"t @ p=[3, 9, 17]\n",
559+
"t @ n=[1, 0, 0]\n"
513560
]
514561
}
515562
],
516563
"source": [
517-
"t = mi.Transform4f.translate([0, 1, 2])\n",
518-
"t = t @ mi.Transform4f.scale([1, 2, 3])\n",
564+
"t = mi.Transform4f().translate([0, 1, 2])\n",
565+
"t = t @ mi.Transform4f().scale([1, 2, 3])\n",
519566
"v = mi.Vector3f([3, 4, 5])\n",
520567
"p = mi.Point3f([3, 4, 5])\n",
521568
"n = mi.Normal3f([1, 0, 0])\n",
@@ -547,13 +594,13 @@
547594
"name": "stdout",
548595
"output_type": "stream",
549596
"text": [
550-
"[6.0, 2.0, 2.0]\n"
597+
"[6, 2, 2]\n"
551598
]
552599
}
553600
],
554601
"source": [
555-
"S = mi.Transform4f.scale(2.0)\n",
556-
"T = mi.Transform4f.translate([4, 0, 0])\n",
602+
"S = mi.Transform4f().scale(2.0)\n",
603+
"T = mi.Transform4f().translate([4, 0, 0])\n",
557604
"v = mi.Point3f([1, 1, 1])\n",
558605
"\n",
559606
"trasfo = T @ S\n",
@@ -580,10 +627,16 @@
580627
{
581628
"data": {
582629
"text/plain": [
583-
"[[2, 0, 0, 2],\n",
584-
" [0, 2, 0, 0],\n",
585-
" [0, 0, 2, 0],\n",
586-
" [0, 0, 0, 1]]"
630+
"Transform[\n",
631+
" matrix=[[2, 0, 0, 2],\n",
632+
" [0, 2, 0, 0],\n",
633+
" [0, 0, 2, 0],\n",
634+
" [0, 0, 0, 1]],\n",
635+
" inverse_transpose=[[0.5, 0, 0, 0],\n",
636+
" [0, 0.5, 0, 0],\n",
637+
" [0, 0, 0.5, 0],\n",
638+
" [-1, 0, 0, 1]]\n",
639+
"]"
587640
]
588641
},
589642
"execution_count": 14,
@@ -592,7 +645,7 @@
592645
}
593646
],
594647
"source": [
595-
"mi.Transform4f.scale(2.0).translate([1, 0, 0])"
648+
"mi.Transform4f().scale(2.0).translate([1, 0, 0])"
596649
]
597650
},
598651
{
@@ -612,10 +665,16 @@
612665
{
613666
"data": {
614667
"text/plain": [
615-
"[[2, 0, 0, 2],\n",
616-
" [0, 2, 0, 0],\n",
617-
" [0, 0, 2, 0],\n",
618-
" [0, 0, 0, 1]]"
668+
"Transform[\n",
669+
" matrix=[[2, 0, 0, 2],\n",
670+
" [0, 2, 0, 0],\n",
671+
" [0, 0, 2, 0],\n",
672+
" [0, 0, 0, 1]],\n",
673+
" inverse_transpose=[[0.5, 0, 0, 0],\n",
674+
" [0, 0.5, 0, 0],\n",
675+
" [0, 0, 0.5, 0],\n",
676+
" [-1, 0, 0, 1]]\n",
677+
"]"
619678
]
620679
},
621680
"execution_count": 15,
@@ -624,7 +683,7 @@
624683
}
625684
],
626685
"source": [
627-
"mi.Transform4f.scale(2.0) @ mi.Transform4f.translate([1, 0, 0])"
686+
"mi.Transform4f().scale(2.0) @ mi.Transform4f().translate([1, 0, 0])"
628687
]
629688
}
630689
],
@@ -647,7 +706,7 @@
647706
"name": "python",
648707
"nbconvert_exporter": "python",
649708
"pygments_lexer": "ipython3",
650-
"version": "3.9.13"
709+
"version": "3.10.12"
651710
}
652711
},
653712
"nbformat": 4,

0 commit comments

Comments
 (0)