-
Notifications
You must be signed in to change notification settings - Fork 0
/
raytrace.ppm
7503 lines (7503 loc) · 75.5 KB
/
raytrace.ppm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
P3
100 75
255
112 71 54
106 67 51
104 69 50
103 65 50
102 66 50
107 69 53
111 71 52
95 65 48
98 65 48
86 59 45
95 63 47
83 66 58
97 88 68
97 82 71
102 93 83
106 94 86
95 89 78
113 100 86
97 86 65
110 97 86
111 96 81
107 100 86
99 90 79
108 99 86
92 96 79
120 110 97
116 109 91
111 102 95
95 88 76
111 104 92
172 171 159
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
184 185 179
107 110 87
107 113 93
108 118 99
109 114 91
103 101 85
99 109 85
102 119 92
105 108 91
110 110 98
93 94 77
106 111 90
95 103 86
89 104 79
97 119 89
89 102 81
85 99 76
104 114 94
92 97 77
67 90 53
54 78 42
65 100 50
65 96 47
59 86 45
64 101 49
66 104 50
58 88 45
65 100 49
65 100 49
68 108 53
69 106 52
66 98 49
99 66 50
113 70 53
103 69 51
96 66 48
102 67 51
100 65 49
103 67 52
92 61 48
87 61 44
91 59 46
88 59 46
84 57 43
85 69 58
93 81 70
97 84 74
114 101 93
102 79 70
105 97 83
112 99 89
110 101 87
100 95 83
112 101 88
108 92 80
112 106 90
128 118 105
99 94 81
107 104 94
86 80 70
112 109 93
112 110 95
96 95 84
239 238 238
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
241 241 240
112 119 99
119 119 102
107 113 96
98 102 88
105 113 97
102 110 86
92 103 78
96 109 83
105 111 91
110 123 99
112 120 102
108 116 96
81 85 63
90 105 76
83 95 70
88 98 74
95 105 86
96 108 87
71 99 59
59 86 45
58 86 45
57 85 44
68 104 51
62 94 48
66 101 50
59 91 47
66 104 51
66 103 51
67 108 52
64 99 50
76 115 55
62 96 47
109 70 52
105 70 51
106 71 52
92 62 49
96 61 48
90 62 47
106 69 51
96 60 48
94 62 47
90 61 47
93 63 48
82 58 45
92 60 47
83 65 52
94 79 63
97 86 74
86 88 63
100 93 78
99 91 76
100 90 81
115 99 87
105 101 91
105 101 85
117 108 99
104 93 90
117 109 92
104 101 88
109 97 89
115 101 96
99 97 83
93 91 79
170 168 164
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
163 167 158
97 107 90
101 113 89
106 117 93
111 118 100
90 101 79
93 103 81
91 101 81
105 117 91
109 120 99
90 102 80
95 109 81
96 108 81
86 104 73
91 102 80
82 99 73
91 100 81
86 90 72
65 88 54
61 94 47
60 87 46
60 93 47
62 92 47
69 103 52
62 88 46
60 94 48
70 112 54
67 99 50
68 106 52
63 91 48
73 111 54
70 108 53
73 110 52
103 67 51
104 69 51
104 67 52
105 70 52
103 71 52
104 67 51
113 72 54
95 63 49
107 69 52
97 66 49
105 69 52
102 65 50
85 57 45
92 60 46
97 67 54
88 80 63
94 86 72
95 89 77
107 95 83
91 89 78
105 100 88
92 88 75
99 91 77
113 99 86
103 99 85
109 94 79
117 101 90
100 94 90
111 105 93
108 104 95
113 103 95
104 94 84
228 227 226
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
235 237 234
94 102 80
106 112 97
98 114 89
102 109 91
93 102 81
106 118 93
100 109 80
101 117 93
109 119 99
97 113 86
95 110 84
97 106 83
91 107 80
90 102 80
86 95 78
86 97 75
74 86 62
64 87 54
58 86 45
55 81 44
61 95 47
67 101 49
62 97 48
71 102 52
67 101 51
65 101 50
67 106 51
73 107 53
70 104 52
78 121 57
68 109 51
69 104 51
66 98 50
104 69 51
104 67 52
114 75 55
108 69 52
107 70 52
87 59 46
102 67 51
106 66 52
100 68 50
111 72 53
105 68 50
86 59 45
92 64 47
89 60 45
86 59 45
80 62 52
97 86 78
100 86 75
108 95 84
110 100 91
111 104 95
103 94 86
102 98 86
113 98 86
112 98 85
90 85 73
103 95 87
116 106 95
110 101 89
113 107 96
92 92 78
107 95 89
173 168 166
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
169 170 163
99 98 80
94 94 78
98 111 77
107 111 93
85 92 73
94 110 76
85 93 73
106 110 93
94 112 87
98 106 89
102 115 91
113 117 99
86 96 74
84 100 75
89 100 78
77 93 68
68 97 59
58 80 44
64 94 48
64 100 49
61 90 46
64 97 48
61 91 46
62 96 47
66 105 51
71 110 53
68 107 51
74 116 55
70 109 53
60 90 47
64 97 50
74 116 55
66 101 49
106 70 52
108 69 52
112 72 54
95 65 49
112 72 55
97 63 49
106 66 51
108 72 53
111 71 54
94 66 49
103 70 50
95 63 49
98 62 48
90 61 46
96 64 48
80 56 43
90 64 53
84 72 65
105 94 78
94 90 79
99 87 72
107 97 85
95 80 68
97 90 77
109 98 85
77 85 63
116 102 90
106 92 86
91 89 70
107 93 84
104 96 85
103 97 82
99 88 77
234 235 233
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
238 239 237
113 116 101
103 118 91
99 115 87
111 119 99
92 103 79
100 103 89
97 104 81
96 103 91
95 109 82
87 97 65
96 98 82
99 108 88
102 111 94
84 102 76
85 86 72
110 119 105
55 82 44
60 91 47
60 88 46
63 92 48
62 94 48
65 99 50
63 89 47
68 100 50
69 105 52
69 106 53
69 103 50
72 113 54
66 104 52
74 116 57
72 111 54
76 120 57
69 106 51
68 106 51
102 69 51
112 73 56
105 71 51
108 70 53
109 72 53
101 66 49
95 67 49
109 72 54
107 69 51
107 69 52
101 67 51
104 68 51
102 65 50
90 61 47
99 65 49
92 60 46
92 62 46
87 66 56
90 75 63
105 96 86
85 78 62
123 110 96
97 93 82
119 110 101
86 75 67
104 97 85
104 93 81
101 92 76
107 100 92
112 110 99
101 95 77
98 98 83
98 92 82
156 153 149
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
160 162 156
102 108 90
97 99 88
97 102 82
94 99 77
108 117 96
96 100 92
87 95 71
101 111 88
104 116 97
79 89 71
100 106 85
95 95 89
82 89 76
83 94 75
90 98 81
71 94 63
60 88 46
61 100 48
65 95 49
62 92 48
69 107 52
74 115 55
59 91 46
66 99 51
61 90 47
66 101 50
75 119 57
68 107 51
71 108 53
75 120 57
74 113 55
67 108 52
76 116 55
72 109 53
119 75 57
103 70 51
92 64 47
115 73 55
113 74 55
105 68 50
97 66 50
101 67 50
113 73 54
94 62 48
93 64 48
93 63 48
109 70 53
94 62 48
96 65 48
97 62 48
79 54 44
78 54 43
88 68 57
98 85 71
104 98 84
100 91 74
96 83 77
97 77 64
111 105 93
104 94 81
115 106 91
99 89 78
103 96 89
115 98 85
119 112 104
111 103 96
111 107 92
109 98 83
232 232 230
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
239 239 238
106 108 88
112 118 101
107 108 94
100 102 88
103 120 93
88 89 72
96 103 76
93 100 81
94 106 81
88 103 78
85 99 69
103 116 94
103 107 92
95 108 87
93 104 80
67 90 57
58 90 45
63 93 48
62 97 48
68 109 51
61 92 48
71 114 55
70 103 52
70 109 52
69 105 52
75 116 56
76 117 56
68 102 51
74 115 55
73 112 55
71 106 53
73 111 54
71 110 53
71 111 54
72 113 55
108 73 53
114 72 54
114 74 55
106 69 53
112 73 53
105 70 51
106 71 52
101 65 50
96 64 49
98 65 49
103 66 50
99 64 50
92 62 47
95 61 48
97 63 49
97 64 49
96 65 49
100 67 50
88 57 46
92 66 55
96 87 77
101 88 80
107 99 88
103 89 77
101 91 80
99 87 77
97 90 81
111 99 80
93 91 72
94 84 75
134 120 100
105 94 86
114 109 100
117 106 96
171 166 162
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
156 159 148
122 129 109
105 102 89
112 110 96
94 97 74
100 106 88
99 111 89
104 120 95
102 112 83
101 110 89
91 99 79
105 110 90
82 88 72
92 96 81
100 109 82
69 89 54
64 94 47
58 76 43
63 97 48
62 90 48
66 104 51
68 104 51
67 104 51
68 105 52
67 101 51
69 108 52
67 96 49
71 106 52
71 113 54
64 93 47
74 120 57
76 116 56
71 108 52
73 112 55
74 111 54
74 117 56
124 77 58
103 68 50
106 70 52
117 76 56
103 66 51
104 68 51
105 70 52
122 78 57
121 77 57
104 68 51
112 73 54
94 63 47
122 77 57
101 67 50
94 64 48
104 67 51
95 60 47
93 62 47
99 65 49
97 64 47
84 66 58
98 90 78
95 90 78
104 96 78
105 101 84
112 104 92
104 91 80
102 103 80
101 93 77
101 87 77
116 111 101
115 103 97
108 98 88
112 99 91
109 99 88
243 243 242
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
228 227 227
111 114 98
107 114 91
98 100 85
108 116 90
89 95 75
104 116 94
85 91 74
106 113 96
94 109 81
108 115 97
100 102 88
83 101 73
97 108 84
76 80 64
58 75 46
63 94 48
65 99 49
65 96 48
60 93 47
67 101 50
63 95 47
67 99 50
72 111 54
67 107 52
68 106 52
69 108 53
79 121 57
71 110 54
72 114 54
60 85 47
65 97 49
74 113 55
77 120 56