Difference between revisions of "User:Le Forgeron/warp"

From POV-Wiki
Jump to navigation Jump to search
 
Line 2: Line 2:
  
 
== hyperbolic disc warp ==
 
== hyperbolic disc warp ==
perform an hyperbolic projection on a disc;, Poincaré Hyperbolic disk.
+
perform an hyperbolic projection on a disc: Poincaré Hyperbolic disk.
 
* radius of the disc can be adjusted
 
* radius of the disc can be adjusted
 
* inside of the disc can be scaled before the projection
 
* inside of the disc can be scaled before the projection

Latest revision as of 10:39, 6 September 2020

hyperbolic disc warp

perform an hyperbolic projection on a disc: Poincaré Hyperbolic disk.

  • radius of the disc can be adjusted
  • inside of the disc can be scaled before the projection
warp { disc [radius FLOAT] [scale FLOAT] }


#version 3.8;
global_settings{ assumed_gamma 1.0 }

camera {
  location <5, -20, 14>
  direction y
  sky z
  up z
  right image_width*x/image_height
  look_at 0
  angle 15
}

#default{ finish { emission 0.5 reflection 0.5 } }

cylinder { 0.5*z, -0.5*z, 3
  texture { checker
    texture { pigment { rgb <0.3,0.9,0> } }
    texture { pigment { rgb <1,0.0,0.5> } }
    warp { disc radius 2.75 scale 0.75 }
  }
}
light_source { <0, -10, 20> 1 }

LeForgeron warpDisc.png

rotation warp

rotate along the z axis

warp { rotate PerUnit }
#version 3.8;
global_settings{ assumed_gamma 1.0 }

camera {
  location <5, -20, 14>
  direction y
  sky z
  up z 
  right image_width*x/image_height
  look_at 0
  angle 20
}

#default{ finish { emission 0.5 reflection 0.5 } }

cylinder { 3.5*z, -3.5*z, 3 
  texture { checker 
    texture { pigment { red 1 } }
    texture { pigment { green 1 } }
    warp { rotate -1/29 }
  }
}
light_source { <0, -10, 20> 1 }

LeForgeron warpRotate.png

direct to a surface

As a curiosity, the warp can be inversed by adding inverse after the last parameter.

cone

wrap around a circular cone (oriented along y axis) with apex at origin point and a radius of unit_base one unit away from that apex. The x=0 half-plane (for z>0) remains itself.

Each axis of parameter is the multiplying factor for that axe.

warp { cone <origin>,unit_base,<parameter> }
cone { <0,2,0>,0,<0,0,0>,1
texture { pigment { My_pigment 
warp { cone <0,2,0>,0.5,<3,5,7> }
}
}
}
cone { <0,2,0>,0.5,<0,0,0>,1
texture { pigment { My_pigment 
warp { cone <0,4,0>,0.25,<3,5,7> }
}
}
}

LeForgeron warpcone2.png

LeForgeron warpcone.png

LeForgeron warpcutcone2.png

LeForgeron warpcutcone.png

cylinder

wrap around a cylinder (oriented along y axis) with <0,0,0> moved at origin point. The x=0 half-plane (for z>0) remains itself.

Each axis of parameter is the multiplying factor for that axe.

warp { cylinder <origin>,<parameter> }
cylinder { <0,0,0>,<0,2,0>,1
 texture { pigment { My_pigment 
  warp { cylinder <0,1,0>,<3,5,7> }
}
}
}

LeForgeron warpcyl.png

LeForgeron warpcutcyl.png

sphere

wrap around a sphere (main axe being the y axe) with <0,0,0> moved at origin point. The x=0 half-plane (for z>0) remains itself.

Each axis of parameter is the multiplying factor for that axe.

warp { sphere <origin>,<parameter> }
sphere { <0,0.5,0>,1
 texture { pigment { My_pigment 
  warp { sphere <0,0.5,0>,<3,5,7> }
}
}
}

LeForgeron warpsphe.png

LeForgeron warpcutsphe.png

torus

wrap around a torus (oriented along y axis) with <0,0,0> moved at origin point and a major radius of major. The x=0 half-plane (for z>0) remains itself.

Each axis of parameter is the multiplying factor for that axe.

warp { torus <origin>,major,<parameter> }
torus { 0.55,0.45 
 texture { pigment { My_pigment 
  warp { torus <0,0,0>,0.55,<3,5,7> }
}
}
}

LeForgeron warptorus.png

LeForgeron warpcuttorus.png