| 
|  |  |  
|  |  |  |  |  |  |  |  |  |  |  
|  |  |  |  |  |  |  |  |  |  |  
|  |  | This may be a newbie type question, but here goes:
I'm trying to use the HF_ functions in shapes.inc to generate a mesh from a
small .png file.
I simply added a new funtion to the example file given in the include files
demo. When I did, I got an error.
//==============================
#declare MyFunction = function{pattern {bumps scale 0.2}}
 // MyFunction above works...
#declare MyTest = function
 { pigment
   { image_map
     {png "testHF.png"
      map_type 0 interpolate 2
     }
    }
  } // <- this replacement produces an error.
    // shapes.inc pops up and marks the bit of code named above
object {
   HF_Square
    ( MyTest, // MyFunction was here, but I replaced it.
      off,
      off,
      <60,60>,
      on,
      "",
      <0.0, 0.1, 0.0>,
      <1.5, 0.5, 1.5>
    )
   texture {
      pigment {color rgb 1}
      finish {ShinyFinish}
   }
   translate <-3.0, 0.0,-3.2>
}
// ===========
// The error that happens pops up shapes.inc and a line in the
// HFCreate_() macro gets marked. See note below.
// ====
  #local J = 1;
   #while (J<=xRes)
      #local K = 1;
      #while (K<=zRes)
         PArr[J][K],   // <-- this code gets highlited in yellow
         #declare K = K+1;
      #end
      #declare J = J+1;
   #end
//====================================
What do I do to get an image file used as a function?
normdoering
Post a reply to this message
 |  |  |  |  |  |  |  |  
|  |  |  |  |  |  |  |  |  |  |  
|  |  | "normdoering" <nor### [at] yahoo com> schrieb im Newsbeitrag
news:web.3dcb3c88902ebc51ccdab82b0@news.povray.org...
> //==============================
>
> #declare MyFunction = function{pattern {bumps scale 0.2}}
>  // MyFunction above works...
>
As a pattern, this function returns a float value.
> #declare MyTest = function
>  { pigment
>    { image_map
>      {png "testHF.png"
>       map_type 0 interpolate 2
>      }
>     }
>   } // <- this replacement produces an error.
>     // shapes.inc pops up and marks the bit of code named above
>
As a pigment, this function returns a vector. Pov can handle
vector-functions only in special cases, therefor you have to convert the
output to a float value.
Try:
#declare MyTest=function{MyTest(x,y,z).hf}
(it's difficult to find but the dot-operators are explained in the docs
somewhere)
Hth,
Marc-Hendrik Post a reply to this message
 |  |  |  |  |  |  |  |  
|  |  |  |  |  |  |  |  |  |  |  
|  |  | Marc-Hendrik Bremer wrote:
>"normdoering" <nor### [at] yahoo com> schrieb im Newsbeitrag
>news:web.3dcb3c88902ebc51ccdab82b0[at]news.povray.org...
>> //==============================
>>
>> #declare MyFunction = function{pattern {bumps scale 0.2}}
>>  // MyFunction above works...
>>
>
>As a pattern, this function returns a float value.
>
>> #declare MyTest = function
>>  { pigment
>>    { image_map
>>      {png "testHF.png"
>>       map_type 0 interpolate 2
>>      }
>>     }
>>   } // <- this replacement produces an error.
>>     // shapes.inc pops up and marks the bit of code named above
>>
>
>As a pigment, this function returns a vector. Pov can handle
>vector-functions only in special cases, therefor you have to convert the
>output to a float value.
>
>Try:
>
>#declare MyTest=function{MyTest(x,y,z).hf}
>
>(it's difficult to find but the dot-operators are explained in the docs
>somewhere)
>
>Hth,
>
>Marc-Hendrik
>
Thanks! I never would have figured that one out without help. Don't know
enough about the internal workings of pov yet.
normdoering Post a reply to this message
 |  |  |  |  |  |  |  |  
|  |  |  |  |  |  |  |  |  |  |  
|  |  | normdoering wrote:
>Marc-Hendrik Bremer wrote:
>>"normdoering" <nor### [at] yahoo com> schrieb im Newsbeitrag
>>news:web.3dcb3c88902ebc51ccdab82b0[at]news.povray.org...
>>> //==============================
>>>
>>> #declare MyFunction = function{pattern {bumps scale 0.2}}
>>>  // MyFunction above works...
>>>
>>
>>As a pattern, this function returns a float value.
>>
>>> #declare MyTest = function
>>>  { pigment
>>>    { image_map
>>>      {png "testHF.png"
>>>       map_type 0 interpolate 2
>>>      }
>>>     }
>>>   } // <- this replacement produces an error.
>>>     // shapes.inc pops up and marks the bit of code named above
>>>
>>
>>As a pigment, this function returns a vector. Pov can handle
>>vector-functions only in special cases, therefor you have to convert the
>>output to a float value.
>>
>>Try:
>>
>>#declare MyTest=function{MyTest(x,y,z).hf}
>>
>>(it's difficult to find but the dot-operators are explained in the docs
>>somewhere)
>>
>>Hth,
>>
>>Marc-Hendrik
>>
>
>Thanks! I never would have figured that one out without help. Don't know
>enough about the internal workings of pov yet.
>
>normdoering
>
I spoke too soon. Adding your line of code got rid of the error, but the
image doesn't appear on the "height field." All I get is a flat rectangle.
normdoering Post a reply to this message
 |  |  |  |  |  |  |  |  
|  |  |  |  |  |  |  |  |  |  |  
|  |  | This is at least the fifth place where you ask this same question.
  Posting a question once is usually enough.
-- 
#macro M(A,N,D,L)plane{-z,-9pigment{mandel L*9translate N color_map{[0rgb x]
[1rgb 9]}scale<D,D*3D>*1e3}rotate y*A*8}#end M(-3<1.206434.28623>70,7)M(
-1<.7438.1795>1,20)M(1<.77595.13699>30,20)M(3<.75923.07145>80,99)// - Warp -
Post a reply to this message
 |  |  |  |  |  |  |  |  
|  |  |  |  |  |  |  |  |  |  |  
|  |  | Warp wrote:
>  This is at least the fifth place where you ask this same question.
>
>  Posting a question once is usually enough.
>
>#macro M(A,N,D,L)plane{-z,-9pigment{mandel L*9translate N color_map{[0rgb x]
>-1<.7438.1795>1,20)M(1<.77595.13699>30,20)M(3<.75923.07145>80,99)// - Warp -
>
Sorry, I was frustrated and wanted an answer fast.
At any rate -- some additional information:
Dot operators are mentioned in the section on isosurfaces (at tail end of
section 6.5.4.2) and there's more than .hf -- there's .grey (which works as
well for grey scales) and .red, .green, .blue, and .transmit -- which means
there is even more creative potential for this kind of macro.
normdoering
Post a reply to this message
 |  |  |  |  |  |  |  |  
|  |  |  |  |  |  |  |  |  |