|
2349 | 2349 |
|
2350 | 2350 | ...
|
2351 | 2351 | };
|
| 2352 | + |
| 2353 | + class metal : public material { |
| 2354 | + public: |
| 2355 | + ... |
| 2356 | + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C++ highlight |
| 2357 | + bool scatter( |
| 2358 | + const ray& r_in, const hit_record& rec, color& attenuation, ray& scattered, double& pdf |
| 2359 | + ) const override { |
| 2360 | + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C++ |
| 2361 | + ... |
| 2362 | + } |
| 2363 | + }; |
| 2364 | + |
| 2365 | + class dielectric : public material { |
| 2366 | + public: |
| 2367 | + ... |
| 2368 | + |
| 2369 | + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C++ highlight |
| 2370 | + bool scatter( |
| 2371 | + const ray& r_in, const hit_record& rec, color& attenuation, ray& scattered, double& pdf |
| 2372 | + ) const override { |
| 2373 | + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C++ |
| 2374 | + ... |
| 2375 | + } |
| 2376 | + }; |
| 2377 | + |
| 2378 | + class diffuse_light : public material { |
| 2379 | + public: |
| 2380 | + ... |
| 2381 | + |
| 2382 | + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C++ highlight |
| 2383 | + bool scatter( |
| 2384 | + const ray& r_in, const hit_record& rec, color& attenuation, ray& scattered, double& pdf |
| 2385 | + ) const override { |
| 2386 | + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C++ |
| 2387 | + ... |
| 2388 | + } |
| 2389 | + }; |
| 2390 | + |
| 2391 | + class isotropic : public material { |
| 2392 | + public: |
| 2393 | + ... |
| 2394 | + |
| 2395 | + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C++ highlight |
| 2396 | + bool scatter( |
| 2397 | + const ray& r_in, const hit_record& rec, color& attenuation, ray& scattered, double& pdf |
| 2398 | + ) const override { |
| 2399 | + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C++ |
| 2400 | + ... |
| 2401 | + } |
| 2402 | + }; |
2352 | 2403 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
2353 | 2404 | [Listing [scatter-onb]: <kbd>[material.h]</kbd> Scatter function, with orthonormal basis]
|
2354 | 2405 |
|
|
2373 | 2424 | isotropic(const color& albedo) : tex(make_shared<solid_color>(albedo)) {}
|
2374 | 2425 | isotropic(shared_ptr<texture> tex) : tex(tex) {}
|
2375 | 2426 |
|
2376 |
| - |
2377 |
| - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C++ highlight |
2378 | 2427 | bool scatter(
|
2379 | 2428 | const ray& r_in, const hit_record& rec, color& attenuation, ray& scattered, double& pdf
|
2380 | 2429 | ) const override {
|
2381 |
| - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C++ |
2382 | 2430 | attenuation = tex->value(rec.u, rec.v, rec.p);
|
2383 | 2431 | scattered = ray(rec.p, random_unit_vector(), r_in.time());
|
2384 | 2432 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C++ highlight
|
|
0 commit comments