// This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 // International Public License. // Visit https://creativecommons.org/licenses/by-sa/4.0/. // SPDX-License-Identifier: CC-BY-SA-4.0 // yuqk blend_mode_5_00.pov +w900 +h900 (quick and ugly) // yuqk blend_mode_5_00.pov +w900 +h900 +a0.05 +am2 +r3 +j3.33 +d +p // // The blend_modes 4 and 5 were added to the yuqk fork with a set of possible // applications in mind. Blend mode 5, with blend_gamma settings larger than // one, uses only the middle of the interpolation segments in a map. This // capability can be used to define specific colors in media aligning in some // aspect with functions or patterns. // // The example herein uses absorption only media in front of a white plane and // based upon a 'gradient x' pattern. // // Absorption only media must be used with the inverse of the color one wishes // to see through the media and in shadows. #version unofficial 3.8; // yuqk #if (file_exists("version.inc")) #include "version.inc" #end #if (!defined(Fork_yuqk)) #error "This POV-Ray SDL code requires the yuqk fork." #end global_settings { assumed_gamma 1 } // Colors #declare White = srgb <1,1,1>; #declare Grey10 = srgb <0.1,0.1,0.1>; #declare Red = srgb <1,0,0>; #declare Green = srgb <0,1,0>; #declare Blue = srgb <0,0,1>; #declare ChristmasBlue0 = srgb <0.16471,0.56078,0.74118>; #declare ChristmasBlue1 = srgb <0.21176,0.31765,0.58039>; #declare ChristmasBrown0 = srgb <0.36471,0.16863,0.17255>; #declare ChristmasBrown1 = srgb <0.29804,0.12157,0.00784>; #declare ChristmasGold = srgb <0.79216,0.66275,0.02353>; #declare ChristmasGreen = srgb <0.17647,1,0>; #declare ChristmasGreen0 = srgb <0.23529,0.55294,0.05098>; #declare ChristmasGreen1 = srgb <0,0.45882,0.00784>; #declare ChristmasOrange0 = srgb <1,0.4,0>; #declare ChristmasOrange1 = srgb <0.83529,0.42353,0.16863>; #declare ChristmasPink0 = srgb <1,0.8,0.79608>; #declare ChristmasPink1 = srgb <0.8902,0.25882,0.52157>; #declare ChristmasPurple0 = srgb <0.4,0.2,0.59608>; #declare ChristmasPurple1 = srgb <0.30196,0.03137,0.29412>; #declare ChristmasRed = srgb <0.88235,0.11765,0>; #declare ChristmasRed0 = srgb <0.66667,0.00392,0.07843>; #declare ChristmasRed1 = srgb <0.6902,0.10588,0.18039>; #declare ChristmasSilver = srgb <0.88235,0.87451,0.87843>; #declare ChristmasYellow0 = srgb <1,0.8,0>; #declare ChristmasYellow1 = srgb <0.99608,0.94902,0>; // Inverted versions of the colors #declare ChristmasBlue0_inv = White-ChristmasBlue0; #declare ChristmasBlue1_inv = White-ChristmasBlue1; #declare ChristmasBrown0_inv = White-ChristmasBrown0; #declare ChristmasBrown1_inv = White-ChristmasBrown1; #declare ChristmasGold_inv = White-ChristmasGold; #declare ChristmasGreen_inv = White-ChristmasGreen; #declare ChristmasGreen0_inv = White-ChristmasGreen0; #declare ChristmasGreen1_inv = White-ChristmasGreen1; #declare ChristmasOrange0_inv = White-ChristmasOrange0; #declare ChristmasOrange1_inv = White-ChristmasOrange1; #declare ChristmasPink0_inv = White-ChristmasPink0; #declare ChristmasPink1_inv = White-ChristmasPink1; #declare ChristmasPurple0_inv = White-ChristmasPurple0; #declare ChristmasPurple1_inv = White-ChristmasPurple1; #declare ChristmasRed_inv = White-ChristmasRed; #declare ChristmasRed0_inv = White-ChristmasRed0; #declare ChristmasRed1_inv = White-ChristmasRed1; #declare ChristmasSilver_inv = White-ChristmasSilver; #declare ChristmasYellow0_inv = White-ChristmasYellow0; #declare ChristmasYellow1_inv = White-ChristmasYellow1; background { Grey10 } #declare VarOrthoMult = 22.0/max(image_width/image_height,image_height/image_width); #declare Camera01z = camera { orthographic location <0,0,-2> direction z right VarOrthoMult*x*max(1,image_width/image_height) up VarOrthoMult*y*max(1,image_height/image_width) } #declare Plane01 = plane { -z, -5 pigment { White } } #declare FinEmit1 = finish { ambient rgb <0,0,0> diffuse 0 emission White } #declare ObjPlane1 = object { Plane01 finish { FinEmit1 } } #declare CylinderX = cylinder { -1*x, 1*x, 0.01 pigment { Red } } #declare CylinderY = cylinder { -1*y, 1*y, 0.01 pigment { Green } } #declare CylinderZ = cylinder { -1*z, 1*z, 0.01 pigment { Blue } } #declare DensityMapNeg = density_map { blend_mode 5 blend_gamma 3 [ -10 ChristmasBlue0_inv ] [ -9 ChristmasBlue0_inv ] [ -9 ChristmasBlue1_inv ] [ -8 ChristmasBlue1_inv ] [ -8 ChristmasBrown0_inv ] [ -7 ChristmasBrown0_inv ] [ -7 ChristmasBrown1_inv ] [ -6 ChristmasBrown1_inv ] [ -6 ChristmasGold_inv ] [ -5 ChristmasGold_inv ] [ -5 ChristmasGreen_inv ] [ -4 ChristmasGreen_inv ] [ -4 ChristmasGreen0_inv ] [ -3 ChristmasGreen0_inv ] [ -3 ChristmasGreen1_inv ] [ -2 ChristmasGreen1_inv ] [ -2 ChristmasOrange0_inv ] [ -1 ChristmasOrange0_inv ] [ -1 ChristmasOrange1_inv ] [ 0 ChristmasOrange1_inv ] [ 0 ChristmasPink0_inv ] [ 1 ChristmasPink0_inv ] [ 1 ChristmasPink1_inv ] [ 2 ChristmasPink1_inv ] [ 2 ChristmasPurple0_inv ] [ 3 ChristmasPurple0_inv ] [ 3 ChristmasPurple1_inv ] [ 4 ChristmasPurple1_inv ] [ 4 ChristmasRed_inv ] [ 5 ChristmasRed_inv ] [ 5 ChristmasRed0_inv ] [ 6 ChristmasRed0_inv ] [ 6 ChristmasRed1_inv ] [ 7 ChristmasRed1_inv ] [ 7 ChristmasSilver_inv ] [ 8 ChristmasSilver_inv ] [ 8 ChristmasYellow0_inv ] [ 9 ChristmasYellow0_inv ] [ 9 ChristmasYellow1_inv ] [ 10 ChristmasYellow1_inv ] } #declare DensityNeg = density { gradient x raw_wave density_map { DensityMapNeg } } #declare MediaNeg = media { method 3 samples 33 absorption rgb <0.33,0.33,0.33> density { DensityNeg } } //--- scene --- camera { Camera01z } object { CylinderX } object { CylinderY } object { CylinderZ } object { ObjPlane1 } media { MediaNeg }