POV-Ray : Newsgroups : povray.general : Repeating texture sprite : Re: Repeating texture sprite Server Time
16 May 2024 14:50:05 EDT (-0400)
  Re: Repeating texture sprite  
From: Bald Eagle
Date: 1 Mar 2016 20:05:07
Message: <web.56d63bc03999a405e7df57c0@news.povray.org>
#version 3.7;
global_settings { assumed_gamma 1.0 }

//------------------------------------------
// SDL for generating Isometric View Game Tiles
// Bill Walker - 2016
//------------------------------------------

#include "colors.inc"
#include "debug.inc"
 Set_Debug (true)
#include "math.inc"
#include "rand.inc"
#include "shapes.inc"
#include "metals.inc"
#include "transforms.inc"

//###############################################
#declare XImageSize = 1024;
#declare YImageSize = 768;
//###############################################

light_source { <0, 50, 0>  color rgb <1, 1, 1>}

#declare Camera_Iso = camera {
                            location  <0, 0, -12>
                            //right    x*image_width/image_height
                            look_at   <0, 0, 0>
                            rotate x*30 rotate y*45 }


camera {Camera_Iso}

sky_sphere { pigment {Blue} }

//=====================================================================================================================
==

#declare TileTexture =
pigment {cylindrical frequency 1 turbulence 0
         color_map {[0.0 color Green * 0.5]
            [0.3 color Green * 0.5]
            [0.8 color Yellow * 0.1]
                    [1.0 color Yellow * 0.1]
  }//end of color_map
} // end of pigment

#declare Scale = 3;

#declare TileBox = box { 0, 1 translate <-0.5, -0.5, -0.5> pigment {TileTexture}
scale <Scale, 0.01, Scale>}

#declare PlainBox = box { 0, 1 translate <-0.5, -0.5, -0.5>}

#declare Box1 = intersection {object {PlainBox translate <-1, 0,  1>} object
{TileBox}}
#declare Box2 = intersection {object {PlainBox translate < 0, 0,  1>} object
{TileBox}}
#declare Box3 = intersection {object {PlainBox translate < 1, 0,  1>} object
{TileBox}}
#declare Box4 = intersection {object {PlainBox translate <-1, 0,  0>} object
{TileBox}}
#declare Box5 = intersection {object {PlainBox translate < 0, 0,  0>} object
{TileBox}}
#declare Box6 = intersection {object {PlainBox translate < 1, 0,  0>} object
{TileBox}}
#declare Box7 = intersection {object {PlainBox translate <-1, 0, -1>} object
{TileBox}}
#declare Box8 = intersection {object {PlainBox translate < 0, 0, -1>} object
{TileBox}}
#declare Box9 = intersection {object {PlainBox translate < 1, 0, -1>} object
{TileBox}}


//=============================


#declare Spacing = 0.1;


#local NrX = -1;     // start x
#local EndNrX = 2; // end   x
#while (NrX < EndNrX)

 #local NrZ = -1;     // start z
 #local EndNrZ = 1; // end   z
 #while (NrZ < EndNrZ)

  object{Box1 translate <Scale * NrX, 0, Scale * NrZ>}
  object{Box2 translate <Scale * NrX, 0, Scale * NrZ>}
  object{Box3 translate <Scale * NrX, 0, Scale * NrZ>}
  object{Box4 translate <Scale * NrX, 0, Scale * NrZ>}
  object{Box5 translate <Scale * NrX, 0, Scale * NrZ>}
  object{Box6 translate <Scale * NrX, 0, Scale * NrZ>}
  object{Box7 translate <Scale * NrX, 0, Scale * NrZ>}
  object{Box8 translate <Scale * NrX, 0, Scale * NrZ>}
  object{Box9 translate <Scale * NrX, 0, Scale * NrZ>}

  #local NrZ = NrZ + 1+Spacing;  // next Nr z
 #end // --------------- end of loop z

#declare NrX = NrX + 1+Spacing;  // next Nr x
#end // --------------- end of loop x


// 1,3,7,9
  object{Box1 translate <Scale * NrX, 0, Scale * NrZ>}
  object{Box3 translate <Scale * NrX-1, 0, Scale * NrZ>}
  object{Box7 translate <Scale * NrX, 0, Scale * NrZ+1>}
  object{Box9 translate <Scale * NrX-1, 0, Scale * NrZ+1>}

// 1,2,3,7,8,9
  object{Box1 translate <Scale * (NrX-2), 0, Scale * NrZ>}
  object{Box2 translate <Scale * (NrX-2), 0, Scale * NrZ>}
  object{Box3 translate <Scale * (NrX-2), 0, Scale * NrZ>}

  object{Box7 translate <Scale * (NrX-2), 0, Scale * NrZ+1>}
  object{Box8 translate <Scale * (NrX-2), 0, Scale * NrZ+1>}
  object{Box9 translate <Scale * (NrX-2), 0, Scale * NrZ+1>}


// 9, 7, 3, 1
  object{Box9 translate <Scale * (NrX-4), 0, Scale * NrZ+1>}
  object{Box7 translate <Scale * (NrX-3), 0, Scale * NrZ+1>}
  object{Box3 translate <Scale * (NrX-4), 0, Scale * NrZ>}
  object{Box1 translate <Scale * (NrX-3), 0, Scale * NrZ>}


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.