POV-Ray : Newsgroups : povray.binaries.images : The Colony Ship Server Time
10 Oct 2026 18:34:10 EDT (-0400)
  The Colony Ship (Message 24 to 73 of 73)  
<<< Previous 23 Messages Goto Initial 50 Messages
From: Sven Littkowski
Subject: Re: The Colony Ship
Date: 11 Feb 2016 16:44:49
Message: <56bd00d1@news.povray.org>
Hmmm, maybe making an .hdr image is too difficult. Basically, what I
need is an image with a color flow from black through the sunrise colors
to white, and from white through the sunset colors to black. Then using
emission 1.0 or more. Maybe I can do this with a regular image, not
sure. Let's see.


Post a reply to this message

From: clipka
Subject: Re: The Colony Ship
Date: 11 Feb 2016 18:14:59
Message: <56bd15f3$1@news.povray.org>
Am 11.02.2016 um 22:28 schrieb Sven Littkowski:
> At the moment, I am using around 2,000 light sources for my ship inside.
> This is, to simulate a long stripe of light (5 km long) and with a white
> inside and sunset colors to the side.
> 
> But I am considering to make the central cylinder along the middle axis
> much thicker, and to put an .hdr image around it, emitting light. This
> might MAYBE save me a lot of computing time.

I wouldn't expect that to speed up rendering; this would require the
first "bounce" of light to be computed via radiosity, which is primarily
designed for computing light coming from all around, but performs rather
poorly (read: exhibits artifacts unless you invest a lot of rendering
time) for light coming predominantly from a comparatively small region
of the surroundings.

My personal suggestion would be to use a long 1-dimensional area light
(or a number thereof) with area_illumination active, wrapped in a
filtering cylinder.


Post a reply to this message

From: clipka
Subject: Re: The Colony Ship
Date: 11 Feb 2016 18:16:26
Message: <56bd164a$1@news.povray.org>
Am 11.02.2016 um 22:44 schrieb Sven Littkowski:
> Hmmm, maybe making an .hdr image is too difficult. Basically, what I
> need is an image with a color flow from black through the sunrise colors
> to white, and from white through the sunset colors to black. Then using
> emission 1.0 or more. Maybe I can do this with a regular image, not
> sure. Let's see.

Why not simply use a patterned pigment? I think there is some pattern
that does the trick out of the box, but if not, a cylindrical warp
should get you there.


Post a reply to this message

From: Sven Littkowski
Subject: Re: The Colony Ship
Date: 11 Feb 2016 23:42:24
Message: <56bd62b0$1@news.povray.org>
Yes, absolutely right. And that is, what I am going to do as a first try
(emission).

But I like your other suggestion (area light, area illuminated,
filtering cylinder), too, and want to have a look into it. Though I
don't understand wrapped things and such. But this is all about seeing
new ways, and learning them. :-)

Is it possible to create various light nuances (from bright white
daylight to sunset colors to night black) this way?


Post a reply to this message

From: Sven Littkowski
Subject: Re: The Colony Ship
Date: 12 Feb 2016 01:26:36
Message: <56bd7b1c@news.povray.org>
Improved Illumination

Our engineers have installed the new emission-based color_map system
which replaces the previously used 2,000 light sources. This has a vast
reduction in the light bill and a vast increase in render speed.

What's missing now, is the bluish atmosphere.


Post a reply to this message


Attachments:
Download 'sl - colony ship i.png' (96 KB)

Preview of image 'sl - colony ship i.png'
sl - colony ship i.png


 

From: Sven Littkowski
Subject: Re: The Colony Ship
Date: 12 Feb 2016 03:36:41
Message: <56bd9999@news.povray.org>
UPDATE

Habitat was filled with air.

Problem:

while it looks acceptably good on the daytime side, the sunset side
misses a lot of those colors, and the nighttime side is also wrong.
Please have a try on your own and help, if you got some ideas. Thanks.



Scene Code ---------------------------------------------------------



#version 3.7;

#include "macros.inc"
#include "shapes.inc"

#declare MyRadiosity             = on; // on or off
#declare MediumRadiosity         = on;
#declare FastRadiosity           = off;
#declare CameraDaytime           = on;
#declare CameraSunset            = off; // Problem: doesn't look like sunset
#declare CameraNighttime         = off; // Problem: doesn't look like sunset
#declare CameraOutside           = off;

global_settings
{
 #if(MyRadiosity)
  radiosity
  {
   media on
   pretrace_start 0.08
   #if(FastRadiosity)
    pretrace_end   0.015
   #elseif(MediumRadiosity)
    pretrace_end   0.008
   #else
    pretrace_end   0.001
   #end
   count 400
   error_bound 0.75
   recursion_limit 1
  }
 #end
 adc_bailout       0.0039
 ambient_light     rgb < 1.000, 1.000, 1.000 >
 assumed_gamma     1.000
 irid_wavelength   rgb < 0.250, 0.180, 0.140 >
 max_trace_level   5
 number_of_waves   10
 noise_generator   3
 charset           ascii
}

#default { pigment { rgb 1.0 } finish { ambient 0.0 specular 1.0 } }

#if(CameraDaytime)
camera // Daytime Position Inside
{
 location < 0.0, -1400.0, 100.0 >
 look_at  < 0.0, -1400.0, 200.0 >
 right 1.77*x
}
#elseif(CameraSunset)
camera // Sunset Position Inside
{
 location < 1400.0, 0.0, 100.0 >
 look_at  < 1400.0, 0.0, 200.0 >
 right 1.77*x
}
#elseif(CameraNighttime)
camera // Nighttime Position Inside
{
 location < 0.0, 1400.0, 100.0 >
 look_at  < 0.0, 1400.0, 200.0 >
 right 1.77*x
}
#elseif(CameraOutside)
camera // Outside
{
 location < -5000.0, 5000.0, -5000.0 >
 look_at < 0.0, 0.0, 0.0 >
 right 1.77*x
}
#end

#declare Seed=seed(441);

#if(CameraOutside)
light_source
{
 < -10000.0, 10000.0, 10000.0 >
 color rgb < 1.0, 1.0, 1.0 >
}
#end
/*
#declare LightDistance = -253.1;
#declare LightWidth = 50.0;
#declare MyRadius = 5;
#declare MyTightness = 50;
#declare MyFalloff = 80;
#declare MyLightMultiplicator = 0.007;


#declare LightSectionHalf = union
{
 light_source { < 0.0, LightDistance, 0.0 > rgb < 1.00000, 0.98824,
0.88235 > * MyLightMultiplicator*05 spotlight point_at < 000.0, -1500.0,
0.0 > radius 10 tightness 10 falloff 20 rotate < 0.0, 0.0,  2.5 > }
 light_source { < 0.0, LightDistance, 0.0 > rgb < 1.00000, 0.98824,
0.88235 > * MyLightMultiplicator*05 spotlight point_at < 050.0, -1350.0,
0.0 > radius 10 tightness 10 falloff 20 rotate < 0.0, 0.0,  2.5 > }
 light_source { < 0.0, LightDistance, 0.0 > rgb < 1.00000, 0.98824,
0.88235 > * MyLightMultiplicator*05 spotlight point_at < 100.0, -0950.0,
0.0 > radius 10 tightness 10 falloff 20 rotate < 0.0, 0.0,  2.5 > }
 light_source { < 0.0, LightDistance, 0.0 > rgb < 1.00000, 0.98824,
0.88235 > * MyLightMultiplicator*05 spotlight point_at < 150.0, -0700.0,
0.0 > radius 10 tightness 10 falloff 20 rotate < 0.0, 0.0,  2.5 > }
 light_source { < 0.0, LightDistance, 0.0 > rgb < 1.00000, 0.98824,
0.88235 > * MyLightMultiplicator*05 spotlight point_at < 175.0, -0600.0,
0.0 > radius MyRadius tightness MyTightness falloff MyFalloff rotate <
0.0, 0.0,  5.0 > }
 light_source { < 0.0, LightDistance, 0.0 > rgb < 1.00000, 0.88627,
0.50196 > * MyLightMultiplicator*05 spotlight point_at < 200.0, -0550.0,
0.0 > radius MyRadius tightness MyTightness falloff MyFalloff rotate <
0.0, 0.0,  7.5 > }
 light_source { < 0.0, LightDistance, 0.0 > rgb < 1.00000, 0.69412,
0.28235 > * MyLightMultiplicator*04 spotlight point_at < 225.0, -0500.0,
0.0 > radius MyRadius tightness MyTightness falloff MyFalloff rotate <
0.0, 0.0, 10.0 > }
 light_source { < 0.0, LightDistance, 0.0 > rgb < 0.99608, 0.35686,
0.08627 > * MyLightMultiplicator*04 spotlight point_at < 250.0, -0450.0,
0.0 > radius MyRadius tightness MyTightness falloff MyFalloff rotate <
0.0, 0.0, 12.5 > }
 light_source { < 0.0, LightDistance, 0.0 > rgb < 0.76863, 0.27059,
0.05882 > * MyLightMultiplicator*04 spotlight point_at < 275.0, -0400.0,
0.0 > radius MyRadius tightness MyTightness falloff MyFalloff rotate <
0.0, 0.0, 15.0 > }
 light_source { < 0.0, LightDistance, 0.0 > rgb < 0.54902, 0.10980,
0.10980 > * MyLightMultiplicator*03 spotlight point_at < 300.0, -0350.0,
0.0 > radius MyRadius tightness MyTightness falloff MyFalloff rotate <
0.0, 0.0, 17.5 > }
 light_source { < 0.0, LightDistance, 0.0 > rgb < 0.43922, 0.09412,
0.16078 > * MyLightMultiplicator*03 spotlight point_at < 325.0, -0300.0,
0.0 > radius MyRadius tightness MyTightness falloff MyFalloff rotate <
0.0, 0.0, 20.0 > }
 light_source { < 0.0, LightDistance, 0.0 > rgb < 0.31373, 0.07843,
0.14902 > * MyLightMultiplicator*02 spotlight point_at < 350.0, -0250.0,
0.0 > radius MyRadius tightness MyTightness falloff MyFalloff rotate <
0.0, 0.0, 22.5 > }
 light_source { < 0.0, LightDistance, 0.0 > rgb < 0.15294, 0.04706,
0.10588 > * MyLightMultiplicator*02 spotlight point_at < 375.0, -0200.0,
0.0 > radius MyRadius tightness MyTightness falloff MyFalloff rotate <
0.0, 0.0, 25.0 > }
}

#declare LightSection = union
{
 object { LightSectionHalf scale <  1.0, 1.0, 1.0 > }
 object { LightSectionHalf scale < -1.0, 1.0, 1.0 > }
}

#declare RundeLight = 50.0;
#while(RundeLight<4950.0)
 object { LightSection  translate < 0.0, 0.0, RundeLight > }
 #declare RundeLight = RundeLight+50.0;
#end
*/
// ---------------------------------------------------


#macro
RoundCilinderSegment(StartHeight,EindHeight,Radius,StartHoek,EindHoek,Bevel,BevelHeight,MaxLength)
	#local Start=y*(StartHeight+Bevel);
	#local Eind=y*(EindHeight-Bevel);
	#local Start2=y*StartHeight;
	#local Eind2=y*EindHeight;
		#local StartHoek2=StartHoek+degrees(Bevel/Radius);
		#local EindHoek2=EindHoek-degrees(Bevel/Radius);
		#local TotaleLengte=radians(EindHoek-StartHoek)*(Radius+BevelHeight);
		#local Aantal=max(int(TotaleLengte/MaxLength),1);
		#local Tel=0;
		mesh {
			triangle {
				vrotate(<Radius,StartHeight,0>,y*StartHoek),
				vrotate(<Radius,EindHeight,0>,y*StartHoek),
				vrotate(<Radius+BevelHeight,StartHeight+Bevel,0>,y*StartHoek2)
			}
			triangle {
				vrotate(<Radius,EindHeight,0>,y*StartHoek),
				vrotate(<Radius+BevelHeight,EindHeight-Bevel,0>,y*StartHoek2),
				vrotate(<Radius+BevelHeight,StartHeight+Bevel,0>,y*StartHoek2)
			}
			triangle {
				vrotate(<Radius,EindHeight,0>,y*StartHoek),
				vrotate(<Radius,EindHeight,0>,y*StartHoek2),
				vrotate(<Radius+BevelHeight,EindHeight-Bevel,0>,y*StartHoek2)
			}
			triangle {
				vrotate(<Radius,StartHeight,0>,y*StartHoek),
				vrotate(<Radius+BevelHeight,StartHeight+Bevel,0>,y*StartHoek2),
				vrotate(<Radius,StartHeight,0>,y*StartHoek2)
			}

			triangle {
				vrotate(<Radius,StartHeight,0>,y*EindHoek),
				vrotate(<Radius,EindHeight,0>,y*EindHoek),
				vrotate(<Radius+BevelHeight,StartHeight+Bevel,0>,y*EindHoek2)
			}
			triangle {
				vrotate(<Radius,EindHeight,0>,y*EindHoek),
				vrotate(<Radius+BevelHeight,EindHeight-Bevel,0>,y*EindHoek2),
				vrotate(<Radius+BevelHeight,StartHeight+Bevel,0>,y*EindHoek2)
			}
			triangle {
				vrotate(<Radius,EindHeight,0>,y*EindHoek),
				vrotate(<Radius,EindHeight,0>,y*EindHoek2),
				vrotate(<Radius+BevelHeight,EindHeight-Bevel,0>,y*EindHoek2)
			}
			triangle {
				vrotate(<Radius,StartHeight,0>,y*EindHoek),
				vrotate(<Radius+BevelHeight,StartHeight+Bevel,0>,y*EindHoek2),
				vrotate(<Radius,StartHeight,0>,y*EindHoek2)
			}

			#while (Tel<Aantal)
				#local H1=StartHoek2+(EindHoek2-StartHoek2)*(Tel/Aantal);
				#local H2=StartHoek2+(EindHoek2-StartHoek2)*((Tel+1)/Aantal);
				#local P1=vrotate(<Radius+BevelHeight,StartHeight+Bevel,0>,y*H1);
				#local P2=vrotate(<Radius+BevelHeight,EindHeight-Bevel,0>,y*H1);
				#local P3=vrotate(<Radius+BevelHeight,EindHeight-Bevel,0>,y*H2);
				#local P4=vrotate(<Radius+BevelHeight,StartHeight+Bevel,0>,y*H2);
				
				#local N1=vrotate(x,y*H1);
				#local N2=vrotate(x,y*H2);
				smooth_triangle {P1,N1,P2,N1,P4,N2}
				smooth_triangle {P2,N1,P3,N2,P4,N2}
				//triangle {P1,P2,P4}
				//triangle {P2,P3,P4}
				
				#local P2B=vrotate(<Radius,EindHeight,0>,y*H1);
				#local P3B=vrotate(<Radius,EindHeight,0>,y*H2);
				triangle {P2,P2B,P3}
				triangle {P2B,P3B,P3}

				#local P2B=vrotate(<Radius,StartHeight,0>,y*H2);
				#local P3B=vrotate(<Radius,StartHeight,0>,y*H1);
				triangle {P2B,P1,P3B}
				triangle {P1,P4,P2B}
				#local Tel=Tel+1;
			#end
		}
#end
#macro Verlaag(X)
	#local R=X-(1+rand(Seed)*2.5);
	R
#end
#macro
CilinderGreeble(StartHeight,EindHeight,Radius,StartHoek,EindHoek,Bevel,BevelHeight,MaxLength,Detail)
	#local Start=(StartHeight+Bevel);
	#local Eind=(EindHeight-Bevel);
	#local StartH=StartHoek+degrees(Bevel/Radius);
	#local EindH=EindHoek-degrees(Bevel/Radius);
	//cilindertjes:
	#local Aantal=rand(Seed)*Detail;
	#while (Aantal>0)
		#local Size=(Bevel*.01)+rand(Seed)*Bevel*.99*2;
		#local Hoek=StartH+(EindH-StartH)*rand(Seed);
		#local Hoogte=Start+(Eind-Start)*rand(Seed);
		#local Depth=BevelHeight/2+rand(Seed)*BevelHeight/2;
		superellipsoid {<1,.1+rand(Seed)*.3> rotate y*90  scale
<Depth,Size,Size> translate x*Radius rotate y*Hoek translate y*Hoogte}
		#local Aantal=Aantal-1;
	#end
	//vakjes:
	#local Aantal=rand(Seed)*Detail;
	#while (Aantal>0)
		#local S=Start+(Eind-Start)*rand(Seed);
		#local E=S+(Eind-S)*rand(Seed);
		#local SH=StartH+(EindH-StartH)*rand(Seed);
		#local EH=SH+(EindH-SH)*rand(Seed);
		#local H=BevelHeight/2+rand(Seed)*BevelHeight/2;
		RoundCilinderSegment(S,E,Radius,SH,EH,Bevel/2,H,AantalStapjes)
		#local Aantal=Aantal-1;
	#end
	//verticale buisjes
	#local Aantal=rand(Seed)*Detail;
	#while (Aantal>0)
		#local S=Start+(Eind-Start)*rand(Seed);
		#local E=S+(Eind-S)*rand(Seed);
		#local SH=StartH+(EindH-StartH)*rand(Seed);
		//#local EH=SH+(EindH-SH)*rand(Seed);
		#local H=(BevelHeight/2+rand(Seed)*BevelHeight/2)/2;
		//RoundCilinderSegment(S,E,Radius,SH,EH,Bevel/2,H,AantalStapjes)
		cylinder {y*S,y*E,H translate x*Radius rotate y*SH}
		sphere {y*S,H translate x*Radius rotate y*SH}
		sphere {y*E,H translate x*Radius rotate y*SH}
		#local Aantal=Aantal-1;
	#end
	//horizontale buisjes simuleren, toruskes zouden wsl te traag gaan
	#local Aantal=rand(Seed)*Detail;
	#while (Aantal>0)
		#local S=Start+(Eind-Start)*rand(Seed);
		#local H=BevelHeight/2+rand(Seed)*BevelHeight/2;
		#local H=min((Eind-S),H*2)/2;
		#local E=S+H*2;
		#local SH=StartH+(EindH-StartH)*rand(Seed);
		#local EH=SH+(EindH-SH)*rand(Seed);
		RoundCilinderSegment(S,E,Radius,SH,EH,H,H,AantalStapjes)
		#local Aantal=Aantal-1;
	#end
#end
#macro
VerdeelCilinder(StartHeight,EindHeight,Radius,StartHoek,EindHoek,Diepte,Bevel,BevelHeight)
	#local Start=y*(StartHeight+Bevel);
	#local Eind=y*(EindHeight-Bevel);
	#local Start2=y*StartHeight;
	#local Eind2=y*EindHeight;
	#if (Diepte<0)
		#ifndef(Detail) #local Detail=5; #end
		#local H=rand(Seed)*BevelHeight;
		#ifndef(MaxSegmentLength) #local AantalStapjes=Bevel; //(eigenlijk de
maximale lengte van een segment)
		#else #local AantalStapjes= MaxSegmentLength; #end
	
RoundCilinderSegment(StartHeight,EindHeight,Radius,StartHoek,EindHoek,Bevel,H,AantalStapjes)
	
CilinderGreeble(StartHeight,EindHeight,Radius+H,StartHoek,EindHoek,Bevel,H,AantalStapjes,Detail)
	#else
		// eerst es checken of 't nie onvoorstelbaar ongelijk verdeeld is:
		#local Lengte=radians(EindHoek-StartHoek)*Radius;
		#local Hoogte=EindHeight-StartHeight;
		
		#local PercentageU=.5+(rand(Seed)-rand(Seed))*.5*.9;
		#local PercentageV=.5+(rand(Seed)-rand(Seed))*.5*.9;
		#local MidHeight=StartHeight+(EindHeight-StartHeight)*PercentageU;
		#local MidHoek=StartHoek+(EindHoek-StartHoek)*PercentageV;

		// als't 2 keer zo hoog als breed is (of nog hoger), dan ff enkel in
de hoogte bijsnijden:
		#if ((Hoogte>(Lengte*2))&(rand(Seed)>.125))
		
VerdeelCilinder(StartHeight,MidHeight,Radius,StartHoek,EindHoek,Verlaag(Diepte),Bevel,BevelHeight)
		
VerdeelCilinder(MidHeight,EindHeight,Radius,StartHoek,EindHoek,Verlaag(Diepte),Bevel,BevelHeight)
		// als't 2 keer lager dan breed is (of nog lager), dan ff enkel in de
breedte bijsnijden:
		#else
			#if (((Hoogte*2)<Lengte)&(rand(Seed)>.125))
			
VerdeelCilinder(StartHeight,EindHeight,Radius,StartHoek,MidHoek,Verlaag(Diepte),Bevel,BevelHeight)
			
VerdeelCilinder(StartHeight,EindHeight,Radius,MidHoek,EindHoek,Verlaag(Diepte),Bevel,BevelHeight)
			#else
			
VerdeelCilinder(StartHeight,MidHeight,Radius,StartHoek,MidHoek,Verlaag(Diepte),Bevel,BevelHeight)
			
VerdeelCilinder(MidHeight,EindHeight,Radius,StartHoek,MidHoek,Verlaag(Diepte),Bevel,BevelHeight)
				
			
VerdeelCilinder(StartHeight,MidHeight,Radius,MidHoek,EindHoek,Verlaag(Diepte),Bevel,BevelHeight)
			
VerdeelCilinder(MidHeight,EindHeight,Radius,MidHoek,EindHoek,Verlaag(Diepte),Bevel,BevelHeight)
			#end
		#end
	#end
#end
//#include "textures.inc"

#declare HabitatOutside = union
{
 #declare Detail=5;
 #declare MaxSegmentLength=.1;
 VerdeelCilinder(-3,3,1,0,360,10,.002,.0075)
 cylinder {-3*y,3*y,1}
 //Metaal()
 rotate < 90.0, 0.0, 0.0 >
 translate < 0.0, 0.0, 3.0 >
 scale < 1.0*1600.0, 1.0*1600.0, (1.0/6.0)*5200.0 >
 translate < 0.0, 0.0, -100.0 >
}

#declare Backbone = union
{
 #declare Detail=5;
 #declare MaxSegmentLength=.1;
 VerdeelCilinder(-3,3,1,0,360,10,.002,.0075)
 cylinder {-3*y,3*y,1}
 //Metaal()
 rotate < 90.0, 0.0, 0.0 >
 translate < 0.0, 0.0, 3.0 >
 scale < 750.0, 750.0, (1.0/6.0)*5000.0 >
 translate < 0.0, 0.0, 0.0 >
}

#declare MyLight = difference  // Backbone Light
{
 cylinder { < 0.0, 0.0, 0.0 > < 0.0, 0.0, 5000.0 > 760.0 }
 box { < -760.1, 0.0, -0.1 > <  760.1, 760.1, 5000.1 > }
 pigment
 {
  gradient x
  color_map
  {
   [ 0.00 rgb < 0.00000, 0.00000, 0.00000 > * 1 ]
   [ 0.05 rgb < 0.15294, 0.04706, 0.10588 > * 1 ]
   [ 0.10 rgb < 0.31373, 0.07843, 0.14902 > * 1 ]
   [ 0.30 rgb < 1.00000, 0.69412, 0.28235 > * 1 ]
   [ 0.425 rgb < 1.00000, 0.98824, 0.88235 >* 2 ]
   [ 0.575 rgb < 1.00000, 0.98824, 0.88235 >* 2 ]
   [ 0.70 rgb < 1.00000, 0.69412, 0.28235 > * 1 ]
   [ 0.90 rgb < 0.31373, 0.07843, 0.14902 > * 1 ]
   [ 0.95 rgb < 0.15294, 0.04706, 0.10588 > * 1 ]
   [ 1.00 rgb < 0.00000, 0.00000, 0.00000 > * 1 ]
  }
  translate < -0.5, 0.0, 0.0 >
  scale < 1520.0, 1.0, 1.0 >
 }
 finish { emission 1.0 }
 translate < 0.0, -10.0, 0.0 >
}

#declare MyAtmosphere = cylinder // Air
{
 < 0.0, 0.0,  0.0 > < 0.0, 0.0, 5000.0 > 1500.0
 pigment { rgbt < 1.0, 1.0, 1.0, 1.0 > }
 hollow
 interior
 {
  fade_colour < 0.4, 0.66, 0.9 >
  fade_distance 5000.0
  fade_power 1001
  media
  {
   emission 0.0005
   density
   {
    gradient y
    density_map
    {
     [ 0.0 rgb < 0.5, 0.7, 1.0 > * 0.1 ]
     [ 0.4 rgb < 0.5, 0.7, 1.0 > ]
     [ 0.5 rgb < 0.5, 0.7, 1.0 > ]
     [ 1.0 rgb < 0.0, 0.0, 0.0 > ]
    }
    translate < 0.0, -0.5, 0.0 >
    scale < 3000.0, 3000.0, 1.0 >
   }
//   absorption 1000.0
/*   scattering
   {
    1
    < 0.5, 0.7, 1.0 >
    extinction 1.0
   } */
  }
 }
}

#declare Fn_1 = function(x,y,z)
{
 1-(-f_snoise3d(x*5,y*3,z*5)*0.8)
}

#declare TheLandscape = object
{
 HF_Cylinder( Fn_1, // Function,
                 0, // UseUVheight:  0 or 1
                 1, // UseUVtexture: 0 or 1
           <50,50>, // Resolution,
                 1, // Smooth: 0 or 1
                "", // FileName, ""=no file,
           <0,0,0>, // EndA,
         <0,1.5,0>, // EndB
              1.60 ,// Radius
               0.05  // Depth
             ) //-------------------------
 scale < 0.58, 0.67, 0.58 >
 rotate < 90.0, 0.0, 0.0 >
 scale < 1500.0, 1500.0, 2500.0 >
}

#declare MyLandscape = union
{
 object { TheLandscape scale < 1.0, 1.0,  1.0 > translate < 0.0, 0.0,
0000.0 > }
 object { TheLandscape scale < 1.0, 1.0, -1.0 > translate < 0.0, 0.0,
5000.0 > }
 pigment { rgb < 0.05, 0.25, 0.0 > }
 finish { emission 0.0 }
}

#declare MyWaterLevel = 1440.0;

#declare fn_pattern = function
{
 pattern { bozo scale 0.15 }
}

#declare fn_water = function
{
 z - fn_pattern(x, y, 0)*0.25
}

#declare MyWater = difference // Water
{
 cylinder { < 0.0, 0.0,  0.0 > < 0.0, 0.0, 5000.0 > 1500.0 }
 cylinder { < 0.0, 0.0, -0.1 > < 0.0, 0.0, 5000.1 > MyWaterLevel }
 material
 {
  texture
  {
   pigment { color rgbt < 0.2, 0.7, 0.3, 0.5 > }
   finish
   {
    ambient 0.0
    diffuse 0.0
    emission 0.0
    reflection
    {
     0.0, 1.0
     falloff 5
     fresnel on
    }
    specular 0.4
    roughness 0.003
   }
   normal
   {
    function { f_ridged_mf(x, y, z, 0.1, 3.0, 7, 0.7, 0.7, 2) } 0.8
    scale 0.13
   }
  }
  interior
  {
   ior 1.3
   fade_distance 10
   fade_power 1001
   fade_color < 0.8, 0.2, 0.2, 0.5 >
   media
   {
//    absorption < 0.8, 0.6, 1.0, 0.5 >
    scattering
    {
     3
     < 0.5, 0.65, 0.4 >
     extinction 1.0
    }
   }
  }
 }
 normal
 {
  function { f_ridged_mf(x, y, z, 0.1, 3.0, 7, 0.7, 0.7, 2) }
  0.8
  scale < 0.13, 0.4, 0.13 >
 }
}

object { HabitatOutside hollow }
object { Backbone hollow }
object { MyLight }
object { MyAtmosphere }
object { MyLandscape }
object { MyWater }


Post a reply to this message


Attachments:
Download 'sl - colony ship i.png' (106 KB)

Preview of image 'sl - colony ship i.png'
sl - colony ship i.png


 

From: Thomas de Groot
Subject: Re: The Colony Ship
Date: 12 Feb 2016 03:44:18
Message: <56bd9b62$1@news.povray.org>
On 12-2-2016 9:35, Sven Littkowski wrote:
> UPDATE
>
> Habitat was filled with air.
>

Your atmosphere and habitat boundaries are exactly overlapping, showing 
unwanted artefacts. Make the atmosphere cylinder a tiny bit larger (or 
smaller) than the habitat.

-- 
Thomas


Post a reply to this message

From: Mike Horvath
Subject: Re: The Colony Ship
Date: 12 Feb 2016 03:59:16
Message: <56bd9ee4$1@news.povray.org>
On 2/11/2016 4:28 PM, Sven Littkowski wrote:
> At the moment, I am using around 2,000 light sources for my ship inside.
> This is, to simulate a long stripe of light (5 km long) and with a white
> inside and sunset colors to the side.
>
> But I am considering to make the central cylinder along the middle axis
> much thicker, and to put an .hdr image around it, emitting light. This
> might MAYBE save me a lot of computing time.
>
> Right now, I have to try to find out, how to create such an .hdr file.
> The wise Internet will tell me...
>

IIRC POV-ray has a limit of 128 light sources.


Mike


Post a reply to this message

From: clipka
Subject: Re: The Colony Ship
Date: 12 Feb 2016 08:14:02
Message: <56bdda9a$1@news.povray.org>
Am 12.02.2016 um 09:59 schrieb Mike Horvath:
> On 2/11/2016 4:28 PM, Sven Littkowski wrote:
>> At the moment, I am using around 2,000 light sources for my ship inside.
>> This is, to simulate a long stripe of light (5 km long) and with a white
>> inside and sunset colors to the side.
>>
>> But I am considering to make the central cylinder along the middle axis
>> much thicker, and to put an .hdr image around it, emitting light. This
>> might MAYBE save me a lot of computing time.
>>
>> Right now, I have to try to find out, how to create such an .hdr file.
>> The wise Internet will tell me...
>>
> 
> IIRC POV-ray has a limit of 128 light sources.

IIRC you're wrong ;)


Post a reply to this message

From: clipka
Subject: Re: The Colony Ship
Date: 12 Feb 2016 08:15:54
Message: <56bddb0a$1@news.povray.org>
Am 12.02.2016 um 09:35 schrieb Sven Littkowski:
> UPDATE
> 
> Habitat was filled with air.
> 
> Problem:
> 
> while it looks acceptably good on the daytime side, the sunset side
> misses a lot of those colors, and the nighttime side is also wrong.
> Please have a try on your own and help, if you got some ideas. Thanks.

As soon as you use media, you really need to use regular light sources.


Post a reply to this message

From: Sven Littkowski
Subject: Re: The Colony Ship
Date: 12 Feb 2016 09:34:41
Message: <56bded81$1@news.povray.org>
Hi.

Do you mean the dark parts on the water surface? If so, this may been
caused by the waves.

Indeed, my air cylinder has the same side as the inner walls of the
habitat cylinder, but you cannot see those inner walls, as the landscape
cylinder and water cylinder are smaller and thus cover the habitat
cylinder inside walls all over.


Post a reply to this message

From: Sven Littkowski
Subject: Re: The Colony Ship
Date: 12 Feb 2016 09:37:57
Message: <56bdee45$1@news.povray.org>
Oh gosh. And an emitting long bar would be soooo good to simulate a long
fluorescent light source. Well, I will keep it for now this way. Who
knows, maybe some smart programmer will add such possibility (media
supporting emitting surfaces) to the next version of POV-Ray..?   O:)


Post a reply to this message

From: Sven Littkowski
Subject: Re: The Colony Ship
Date: 12 Feb 2016 09:44:09
Message: <56bdefb9@news.povray.org>
UPDATE

Just for now, see here a 10 meter wide four-lane road from just below
the middle axis construction, 100 m above the road, and 1.70m above the
road.

The hills range up to 100 m high.

I am not yet happy with the waves.

After that all has been fixed, I will start to work on the land texture.
Then there will be grass, and trees. Maybe some fields (though most of
the vegetables, fruits, and meat will be grown in vitro). Finally, then
I will work on the buildings.


Post a reply to this message


Attachments:
Download 'sl - colony ship ic.png' (57 KB) Download 'sl - colony ship id.png' (104 KB) Download 'sl - colony ship i.png' (63 KB)

Preview of image 'sl - colony ship ic.png'
sl - colony ship ic.png

Preview of image 'sl - colony ship id.png'
sl - colony ship id.png

Preview of image 'sl - colony ship i.png'
sl - colony ship i.png


 

From: Stephen
Subject: Re: The Colony Ship
Date: 12 Feb 2016 13:26:13
Message: <56be23c5$1@news.povray.org>
On 2/12/2016 2:43 PM, Sven Littkowski wrote:
> UPDATE
>
> The hills range up to 100 m high.
>
> I am not yet happy with the waves.
>

I for one cannot see enough detail in your images to comment.
They are too small.
Incidently you really should quote, in your replies, who and what you 
are replying to. IMO

-- 

Regards
     Stephen


Post a reply to this message

From: clipka
Subject: Re: The Colony Ship
Date: 12 Feb 2016 13:28:24
Message: <56be2448$1@news.povray.org>
Am 12.02.2016 um 15:37 schrieb Sven Littkowski:
> Oh gosh. And an emitting long bar would be soooo good to simulate a long
> fluorescent light source. Well, I will keep it for now this way. Who
> knows, maybe some smart programmer will add such possibility (media
> supporting emitting surfaces) to the next version of POV-Ray..?   O:)

Unlikely.

To UberPOV, maybe, as it would be a lot easier to implement in a
stochastic renderer.


Post a reply to this message

From: clipka
Subject: Re: The Colony Ship
Date: 12 Feb 2016 13:40:33
Message: <56be2721@news.povray.org>
Am 12.02.2016 um 19:26 schrieb Stephen:
> Incidently you really should quote, in your replies, who and what you
> are replying to. IMO

I agree with Stephen; a good newsreader will present the thread as a
tree, but even then it is sometimes tedious to trace back what post
you're replying to. On the web interface it is virtually impossible, as
it just gives you a linear list of all the posts.


Post a reply to this message

From: Mike Horvath
Subject: Re: The Colony Ship
Date: 12 Feb 2016 14:13:30
Message: <56be2eda$1@news.povray.org>
On 2/12/2016 8:12 AM, clipka wrote:
> Am 12.02.2016 um 09:59 schrieb Mike Horvath:
>> On 2/11/2016 4:28 PM, Sven Littkowski wrote:
>>> At the moment, I am using around 2,000 light sources for my ship inside.
>>> This is, to simulate a long stripe of light (5 km long) and with a white
>>> inside and sunset colors to the side.
>>>
>>> But I am considering to make the central cylinder along the middle axis
>>> much thicker, and to put an .hdr image around it, emitting light. This
>>> might MAYBE save me a lot of computing time.
>>>
>>> Right now, I have to try to find out, how to create such an .hdr file.
>>> The wise Internet will tell me...
>>>
>>
>> IIRC POV-ray has a limit of 128 light sources.
>
> IIRC you're wrong ;)
>

Is this wiki page wrong?

http://wiki.povray.org/content/Reference:Light_Source


Post a reply to this message

From: clipka
Subject: Re: The Colony Ship
Date: 12 Feb 2016 14:58:47
Message: <56be3977$1@news.povray.org>
Am 12.02.2016 um 20:13 schrieb Mike Horvath:
> On 2/12/2016 8:12 AM, clipka wrote:
>> Am 12.02.2016 um 09:59 schrieb Mike Horvath:
>>> On 2/11/2016 4:28 PM, Sven Littkowski wrote:
>>>> At the moment, I am using around 2,000 light sources for my ship
>>>> inside.
>>>> This is, to simulate a long stripe of light (5 km long) and with a
>>>> white
>>>> inside and sunset colors to the side.
>>>>
>>>> But I am considering to make the central cylinder along the middle axis
>>>> much thicker, and to put an .hdr image around it, emitting light. This
>>>> might MAYBE save me a lot of computing time.
>>>>
>>>> Right now, I have to try to find out, how to create such an .hdr file.
>>>> The wise Internet will tell me...
>>>>
>>>
>>> IIRC POV-ray has a limit of 128 light sources.
>>
>> IIRC you're wrong ;)
>>
> 
> Is this wiki page wrong?
> 
> http://wiki.povray.org/content/Reference:Light_Source

Yes (though I was, too):

- Yes, there is a hard limit to the number of light sources (which I
wasn't aware of).

- No, the limit is no longer 127(!) light sources as mentioned in the
wiki, but 1024.

Also, it may be interesting to note that the limit is only relevant if
you're using photons or media.


Post a reply to this message

From: Sven Littkowski
Subject: Re: The Colony Ship
Date: 12 Feb 2016 15:07:49
Message: <56be3b95$1@news.povray.org>
Couldn't it be possible to implement then a stochastic mode to POV-Ray,
so it can do the same things? But I admit, I am not sure what stochastic
means, will try to find out when I have a bit time. I just want to see
our great POV-Ray pushed to its limits (as some of its programmers)... :-D


Post a reply to this message

From: Sven Littkowski
Subject: Re: The Colony Ship
Date: 12 Feb 2016 15:09:52
Message: <56be3c10$1@news.povray.org>
Hmmm, will have to rethink my own position about that then. For my part,
I always dislike all that quoting. I thought I did a favor to you all
when I always deleted it. But okay, I can easily keep the quotations, no
problem. :-)


Post a reply to this message

From: Stephen
Subject: Re: The Colony Ship
Date: 12 Feb 2016 16:01:11
Message: <56be4817$1@news.povray.org>
On 2/12/2016 6:39 PM, clipka wrote:
> Am 12.02.2016 um 19:26 schrieb Stephen:
>> Incidently you really should quote, in your replies, who and what you
>> are replying to. IMO
>
> I agree with Stephen;

OMG! I will have to write this date in my diary. ;-)


-- 

Regards
     Stephen


Post a reply to this message

From: clipka
Subject: Re: The Colony Ship
Date: 12 Feb 2016 16:11:26
Message: <56be4a7e$1@news.povray.org>
Am 12.02.2016 um 21:07 schrieb Sven Littkowski:
> Couldn't it be possible to implement then a stochastic mode to POV-Ray,
> so it can do the same things? But I admit, I am not sure what stochastic
> means, will try to find out when I have a bit time. I just want to see
> our great POV-Ray pushed to its limits (as some of its programmers)... :-D

Stochastic means using a lot of randomness, resulting in grainy noise
instead of other (sometimes less obvious) types of artifacts. Goes
pretty much against POV-Ray's philosophy of trying to get reproducible
non-grainy results, but is the weapon of choice in UberPOV (and as a
matter of fact one of the primary reasons I started the UberPOV project
in the first place).


Post a reply to this message

From: Sven Littkowski
Subject: Re: The Colony Ship
Date: 12 Feb 2016 16:36:38
Message: <56be5066$1@news.povray.org>
Knowing about UberPov and some other versions, I really think, it would
be nicer not to split the POV-family into more and more children, but to
enable POV-Ray Original to have such modes and capabilities, too.

Imagine, you create a scene that uses the latest features of POV-Ray
3.7, but for one effect you need to use UberPov or another member of the
POV-Ray family, and can't because they are not fully compatible with
their understanding of the scene code because they don't support the
same features.

I personally don't care, if a scene of mine looks on each computer the
same, as long as it is approximately the same. If possible, I would like
such a stochastic mode on demand.

But this is a thread about my colony ship, so I don't want to torture
you with my personal POV-Ray wishes. :-)


Post a reply to this message

From: Larry Hudson
Subject: Re: The Colony Ship
Date: 12 Feb 2016 23:14:53
Message: <56beadbd$1@news.povray.org>
On 02/12/2016 12:09 PM, Sven Littkowski wrote:
> Hmmm, will have to rethink my own position about that then. For my part,
> I always dislike all that quoting. I thought I did a favor to you all
> when I always deleted it. But okay, I can easily keep the quotations, no
> problem. :-)
>

It is **NOT** a favor!!  Your missing context is EXTREMELY annoying!  Especially due
to the 
frequency of your posts.

      -=- Larry -=-

PS.  Short quotes only.  Just enough to show the context.

The full copy of the previous post that many (lazy) people use is unnecessary and also
irritating.

(Except, as here, when the full text is short.)   :-)


Post a reply to this message

From: dick balaska
Subject: Re: The Colony Ship
Date: 13 Feb 2016 00:40:57
Message: <56bec1e9$1@news.povray.org>
On 2/12/2016 11:14 PM, Larry Hudson wrote:

>
> PS.  Short quotes only.  Just enough to show the context.

Yes, I was going to add this. Don't quote the whole article. You are 
usually replying to a specific thought.  If it's multiple thoughts, 
embed your replies inline with the corresponding thought.

And top-posting is for weenies -- Put your reply at the bottom.


Post a reply to this message

From: Cousin Ricky
Subject: Re: The Colony Ship
Date: 13 Feb 2016 02:05:01
Message: <web.56bed558ce532354ac6323910@news.povray.org>
Sven Littkowski <jam### [at] yahoocom> wrote:
> Hmmm, will have to rethink my own position about that then. For my part,
> I always dislike all that quoting. I thought I did a favor to you all
> when I always deleted it. But okay, I can easily keep the quotations, no
> problem. :-)

You weren't doing us any favors.

Deleting parts of quotes that are not relevant to your response is good
netiquette, but eliminating all the quotes in their entirety leaves the reader
with no context.  When you post without quoting, frankly, I have no idea what
you're talking about.  In a newsreader, we are forced to look up and down the
thread to see what you are referring to.  In the Web interface, it is virtually
impossible.


Post a reply to this message

From: Sven Littkowski
Subject: Re: The Colony Ship
Date: 14 Feb 2016 09:26:23
Message: <56c08e8f@news.povray.org>
Kenneth,

See here the image. The twisted real heightfield remains gray as the
original image is, and also does not show any heights. It is just like
an ordinary image texture wrapped along a cylinder.

I also include a down-sized version of the heightfield image (the
original is 10,000x10,000, this one is only 1,000x1,000)

Here's the code:

-----------------------------------------------------------

#declare Fn_1 = function
{
 pigment
 {
  image_map { jpeg "Colony Ship I - Heightfield Landscape.jpg" once
interpolate 2 }
// this image needs to be pi-units wide by 1.0 tall, NOT square.

// You can use these two modifiers to 'reverse' the imagery, to see it
// correctly on the INSIDE. HOWEVER, this does not reverse the *depth* of
// the heightfield. The only way to do that (that I know of) is to invert
// the image_map's colors (in Photoshop, for example.)
                //scale <-1,1,1>
                //translate <1,0,0>
 }
}

#declare TheLandscape = object
{
 HF_Cylinder(function { Fn_1(x,y*1.7,z).gray }, // *Needs* the function
'wrapper' Fn_1
                                             1, // UseUVheight:  0 or 1
// ON-- IMPORTANT
                                             0, // UseUVtexture: 0 or 1
                             <int(100*pi),100>, // Resolution.
                                             1, // Smooth: 0 or 1
                                            "", // FileName, ""=no file,
                                       <0,0,0>, // EndA,
                                     <0,1.7,0>, // EndB-- if this
y-value is different from 1.0,
                                                // change the function's
y-value above to compensate.
                                           0.5, // Radius. Keep this at
.5 for 1:1 reproduction of
                                                // the image_map around
the circumference.
                                            0.1 // Depth
  ) //-------------------------
 scale < 0.58, 0.67, 0.58 >
 rotate < 90.0, 0.0, 0.0 >
 scale < 1500.0, 1500.0, 2500.0 >
}

#declare MyLandscape = union
{
 object { TheLandscape scale < 1.0, 1.0,  1.0 > translate < 0.0, 0.0,
0000.0 > }
 object { TheLandscape scale < 1.0, 1.0, -1.0 > translate < 0.0, 0.0,
5000.0 > }
 pigment { rgb < 0.05, 0.25, 0.0 > }
 finish { emission 0.0 }
}

-----------------------------------------------------------

On 14.02.2016 04:15, Kenneth wrote inside the BUGREPORTS section:
> That's odd. I DO see the green color, using just your code example.
Did you
> combine the 'MyLandscape' object with some other CSG and then apply
another
> different 'gray' texture?
>
> Yes, post an image there (at the IMAGES section).


Post a reply to this message


Attachments:
Download 'sl - colony ship i.png' (29 KB) Download 'colony ship i - heightfield landscape 1000px.jpg' (118 KB)

Preview of image 'sl - colony ship i.png'
sl - colony ship i.png

Preview of image 'colony ship i - heightfield landscape 1000px.jpg'
colony ship i - heightfield landscape 1000px.jpg


 

From: Sven Littkowski
Subject: Re: The Colony Ship
Date: 14 Feb 2016 10:06:01
Message: <56c097d9@news.povray.org>
Sorry, wrong image, here is the correct one for this case.

On 14.02.2016 09:26, Sven Littkowski wrote:
> See here the image. ...


Post a reply to this message


Attachments:
Download 'sl - colony ship i.png' (333 KB)

Preview of image 'sl - colony ship i.png'
sl - colony ship i.png


 

From: Alain
Subject: Re: The Colony Ship
Date: 14 Feb 2016 10:57:22
Message: <56c0a3e2$1@news.povray.org>
Le 16-02-14 09:26, Sven Littkowski a écrit :
> Kenneth,
>
> See here the image. The twisted real heightfield remains gray as the
> original image is, and also does not show any heights. It is just like
> an ordinary image texture wrapped along a cylinder.
>
> I also include a down-sized version of the heightfield image (the
> original is 10,000x10,000, this one is only 1,000x1,000)
>
> Here's the code:
>
> -----------------------------------------------------------
>
> #declare Fn_1 = function
> {
>   pigment
>   {
>    image_map { jpeg "Colony Ship I - Heightfield Landscape.jpg" once
> interpolate 2 }
> // this image needs to be pi-units wide by 1.0 tall, NOT square.
>
> // You can use these two modifiers to 'reverse' the imagery, to see it
> // correctly on the INSIDE. HOWEVER, this does not reverse the *depth* of
> // the heightfield. The only way to do that (that I know of) is to invert
> // the image_map's colors (in Photoshop, for example.)
>                  //scale <-1,1,1>
>                  //translate <1,0,0>
>   }
> }
>
> #declare TheLandscape = object
> {
>   HF_Cylinder(function { Fn_1(x,y*1.7,z).gray }, // *Needs* the function
> 'wrapper' Fn_1
>

Performance tip:
When evaluating a pigment, and that pigment in in shades of gray, it's 
beter to use .red, .green or .blue instead of .gray.

This use the fact that all 3 channels always evaluate to the same value.
.gray will evaluate each channels and perform a ponderated average that 
is always the same value as the red, green and blue channels.
Using .red, .green or .blue, you only evaluate a single channel and 
don't need to do the averaging.

It ONLY work for gray levels pigments and images.


Alain


Post a reply to this message

From: Sven Littkowski
Subject: Re: The Colony Ship
Date: 14 Feb 2016 14:50:58
Message: <56c0daa2$1@news.povray.org>
Hi Alain, not sure if I understood.

You're saying, that I could use a full-color image as heightfield? Like
the same file for texture and heightfield? But I am thinking, a texture
that shows green meadows and brown (soil) paths through them, would give
me the accurate heights. But maybe I am misunderstanding.

Or do you mean, instead of a gray-scale image, I should use a red-scale
image (or green-scale, or blue-scale)? Can you explain in easier words
for me, or give me a sample image? Thanks.

On 14.02.2016 10:57, Alain wrote:
> Performance tip:
> When evaluating a pigment, and that pigment in in shades of gray, it's
> better to use .red, .green or .blue instead of .gray.
> 
> This use the fact that all 3 channels always evaluate to the same value.
> .gray will evaluate each channels and perform a ponderated average that
> is always the same value as the red, green and blue channels.
> Using .red, .green or .blue, you only evaluate a single channel and
> don't need to do the averaging.
> 
> It ONLY work for gray levels pigments and images.
> 
> 
> Alain


Post a reply to this message

From: Stephen
Subject: Re: The Colony Ship
Date: 14 Feb 2016 15:14:46
Message: <56c0e036$1@news.povray.org>
On 2/14/2016 7:50 PM, Sven Littkowski wrote:
> Hi Alain, not sure if I understood.
>
> You're saying, that I could use a full-color image as heightfield? Like
> the same file for texture and heightfield? But I am thinking, a texture
> that shows green meadows and brown (soil) paths through them, would give
> me the accurate heights. But maybe I am misunderstanding.
>
> Or do you mean, instead of a gray-scale image, I should use a red-scale
> image (or green-scale, or blue-scale)? Can you explain in easier words
> for me, or give me a sample image? Thanks.

I think that Alain means that you should use one of the red, green or 
blue components of your greyscale image instead of all of them. This 
will make the parsing a bit quicker. You will get the same result.

-- 

Regards
     Stephen


Post a reply to this message

From: clipka
Subject: Re: The Colony Ship
Date: 14 Feb 2016 15:17:11
Message: <56c0e0c7@news.povray.org>
Am 14.02.2016 um 20:50 schrieb Sven Littkowski:
> Hi Alain, not sure if I understood.
> 
> You're saying, that I could use a full-color image as heightfield? Like
> the same file for texture and heightfield? But I am thinking, a texture
> that shows green meadows and brown (soil) paths through them, would give
> me the accurate heights. But maybe I am misunderstanding.
> 
> Or do you mean, instead of a gray-scale image, I should use a red-scale
> image (or green-scale, or blue-scale)? Can you explain in easier words
> for me, or give me a sample image? Thanks.

Alain is saying the following:

- You are currently using a grayscale image.

- When evaluating a grayscale image, for the sake of functionality it is
irrelevant whether you evaluate the .red, .blue or .green component, or
the .gray pseudo-component, because in a grayscale image they are
guaranteed to all have the same value.

- Using the .gray pseudo-component comes at a performance disadvantage,
because it evaluates the .red, .blue AND .green components, then
computes a weighted average of them.

=> You should use .gred (or .blue or .green) instead of .gray in your code.


(The above is true even if the input image is a true grayscale image
having a single brightness channel instead of three colour channels,
because image format details like number of channels are abstracted away
at a very low level, and POV-Ray always uses a 4-channel RGBA interface
when evaluating an image_map.)


Post a reply to this message

From: Kenneth
Subject: Re: The Colony Ship
Date: 14 Feb 2016 15:55:00
Message: <web.56c0e710ce53235433c457550@news.povray.org>
Sven Littkowski <jam### [at] yahoocom> wrote:
> Kenneth,
>
> See here the image. The twisted real heightfield remains gray as the
> original image is, and also does not show any heights. It is just like
> an ordinary image texture wrapped along a cylinder.
>
> I also include a down-sized version of the heightfield image (the
> original is 10,000x10,000, this one is only 1,000x1,000)
>

(actually it's only 240 X 240)

Well...I DO see the height_field, and the embossed heightfield image. Of course,
I added lights, a camera, and re-scaled the HF so I could work with it easily. I
also upped your green color brightness. Note that specifying just
pigment{rgb < 0.05, 0.25, 0.0 > will use POV-Ray's default finish etc. (And your
green color is kind of dark.) I would urge you to use a full texture statement.

Did you include the final declared object in your scene?? Like...
object{MyLandscape}
That wasn't in your code; I'm assuming you did include it.

Maybe your media is 'hiding' the height_field??

By the way-- I noticed that your uploaded grayscale .jpeg image_map has a
slightly different name than what's in the code you posted; I renamed it, of
course, but it would be *much* easier for us to help you if you made sure to
check things like that before posting. Otherwise, it means extra work for us.
;-)

I suspect that you're taking your code example(s) directly out of your scene;
while that makes sense to you, it's difficult for us, because we have to change
things (like scale, etc.) in order to work with it. (And we have no idea what
its context is in your scene.) A good rule of thumb is to
try and simplify any code examples-- not too much of course-- to make them
easier to test. (In fact, it would be easier for you too, to find problems -- I
would suggest that you test just your own code example above-- with an
appropriate camera and lights. You *should* be able to see it like I do. If you
don't see it, it will still be so-much-simpler to track down any minor
problems.)


Post a reply to this message

From: Kenneth
Subject: Re: The Colony Ship
Date: 14 Feb 2016 16:30:00
Message: <web.56c0f15bce53235433c457550@news.povray.org>
Alain <kua### [at] videotronca> wrote:

>
> This use the fact that all 3 channels always evaluate to the same value.
> .gray will evaluate each channels and perform a ponderated average that
> is always the same value as the red, green and blue channels.
> Using .red, .green or .blue, you only evaluate a single channel and
> don't need to do the averaging.
>
> It ONLY work for gray levels pigments and images.
>

Yes, true. (Although, I didn't know about Clipka's remark, that even grayscale
images benefit from using only a single channel.)

The HF image I was using to test Sven's code happened to be a color image (which
I was also using to apply as a pigment.) Otherwise, grayscale is the way to go
(along *with* .red or etc.)

When using a *color* image to generate a height_field, it's not easy to know
beforehand which color channel will be the best to use (as the image is a mix of
different reds, greens and blues, of different 'gray' intensities.) In which
case, .gray is better.. or more practical, that is.


Post a reply to this message

From: Sven Littkowski
Subject: Re: The Colony Ship
Date: 15 Feb 2016 06:39:22
Message: <56c1b8ea$1@news.povray.org>
Uhmmm, then how do I take off the red and blue channel in Photoshop
(keeping only the green channel)? Never done before, either. :-)

----------------------------------

On 14.02.2016 15:15, clipka and others wrote:
> => You should use .gred (or .blue or .green) instead of .gray in your code.


Post a reply to this message

From: Sven Littkowski
Subject: Re: The Colony Ship
Date: 15 Feb 2016 06:40:37
Message: <56c1b935$1@news.povray.org>
When I try in Photoshop, I cannot save anymore as JPG.


Post a reply to this message

From: Sven Littkowski
Subject: Re: The Colony Ship
Date: 15 Feb 2016 07:04:53
Message: <56c1bee5@news.povray.org>
Hi Kenneth, can you show me the image how it looks? Would be
interesting. Thanks. :-)

See here the automatically generated heightfield (green) and the
image-based heightfield (gray). The green one has easily recognizable hills.



On 14.02.2016 15:51, Kenneth wrote:
> Well...I DO see the height_field, and the embossed heightfield image. Of course,
> I added lights, a camera, and re-scaled the HF so I could work with it easily. I
> also upped your green color brightness. Note that specifying just
> pigment{rgb < 0.05, 0.25, 0.0 > will use POV-Ray's default finish etc. (And your
> green color is kind of dark.) I would urge you to use a full texture statement.


Post a reply to this message


Attachments:
Download 'sl - colony ship ie.png' (333 KB) Download 'sl - colony ship i.png' (227 KB)

Preview of image 'sl - colony ship ie.png'
sl - colony ship ie.png

Preview of image 'sl - colony ship i.png'
sl - colony ship i.png


 

From: Kenneth
Subject: Re: The Colony Ship
Date: 15 Feb 2016 07:15:01
Message: <web.56c1bfd0ce53235433c457550@news.povray.org>
Sven Littkowski <jam### [at] yahoocom> wrote:
> Uhmmm, then how do I take off the red and blue channel in Photoshop
> (keeping only the green channel)? Never done before, either. :-)
>
No, no, you don't need to do it in Photoshop. It's done easily and directly in
your POV-Ray scene, using what is called 'dot notation.' This is explained in
the documentation, although I can't remember exactly where. (In the v3.62
documentation, it was at  3.2.1.4.3  Operators)


Here's the line of code I used in your scene...

#declare TheLandscape = object
{
 HF_Cylinder(function { Fn_1(x,y*1.7,z).gray }  (etc.)

Just substitute  .red  or  .green  or  .blue,  instead of .gray

Simple, eh?  ;-)


Post a reply to this message

From: Sven Littkowski
Subject: Re: The Colony Ship
Date: 15 Feb 2016 07:18:40
Message: <56c1c220@news.povray.org>
He he he! So simple that I couldn't imagine. Thanks! :-D

------------------------------------------

On 15.02.2016 07:09, Kenneth wrote:
> No, no, ...
> HF_Cylinder(function { Fn_1(x,y*1.7,z).gray }
> Just substitute  .red  or  .green  or  .blue,  instead of .gray
> Simple, eh?  ;-)


Post a reply to this message

From: Thomas de Groot
Subject: Re: The Colony Ship
Date: 15 Feb 2016 07:42:09
Message: <56c1c7a1$1@news.povray.org>
On 15-2-2016 12:40, Sven Littkowski wrote:
> When I try in Photoshop, I cannot save anymore as JPG.
>

Try The Gimp
http://www.gimp.org/

-- 
Thomas


Post a reply to this message

From: Kenneth
Subject: Re: The Colony Ship
Date: 15 Feb 2016 08:15:00
Message: <web.56c1cde3ce53235433c457550@news.povray.org>
Sven Littkowski <jam### [at] yahoocom> wrote:
> Uhmmm, then how do I take off the red and blue channel in Photoshop
> (keeping only the green channel)? Never done before, either. :-)
>

If you really want to do something like that, here's how in Photoshop (I'm
using *old* PS v5.0) --

1) Look in the 'Channels' palette (in the main 'Layers/Channels/Paths' palette),
and decide which red, green or blue channel you like. (If your image is
grayscale, all the channels will be identical.)
2) Select 'all' for that particular channel and 'copy' it.
3) 'Paste' it into a new 'Layer.'
4) 'Flatten' the entire image. (This operation is found in the sub-menu of
'Layers/Channels/Paths', hidden by the little black arrow.)
5) Save as .jpeg


Post a reply to this message

From: Kenneth
Subject: Re: The Colony Ship
Date: 15 Feb 2016 09:00:01
Message: <web.56c1d8b1ce53235433c457550@news.povray.org>
Sven Littkowski <jam### [at] yahoocom> wrote:
> Hi Kenneth, can you show me the image how it looks? Would be
> interesting. Thanks. :-)
>

Here's just a single cylinder. Note the straight-line 'seam' that shows up--
that's because the extreme left and right edges of your original image_map are
not the same, visually. When the edges meet around the cylinder, they produce a
visual glitch. Nothing much can be done about that, unless you modify your
original image_map so that it's less noticeable. You could try 'blurring' the
left and right edges.


Post a reply to this message


Attachments:
Download 'green_cylinder.jpg' (91 KB)

Preview of image 'green_cylinder.jpg'
green_cylinder.jpg


 

From: Sven Littkowski
Subject: Re: The Colony Ship
Date: 15 Feb 2016 09:39:43
Message: <56c1e32f$1@news.povray.org>
Thanks!
And I use PS v7...  :-)

On 15.02.2016 08:10, Kenneth wrote:
> If you really want to do something like that, here's how in Photoshop (I'm
> using *old* PS v5.0) --


Post a reply to this message

From: Sven Littkowski
Subject: Re: The Colony Ship
Date: 15 Feb 2016 09:40:26
Message: <56c1e35a$1@news.povray.org>
Yes, I have heard about it, and maybe even had it once installed. Will
try out. Thanks!

On 15.02.2016 07:41, Thomas de Groot wrote:
> Try The Gimp
> http://www.gimp.org


Post a reply to this message

From: Sven Littkowski
Subject: Re: The Colony Ship
Date: 15 Feb 2016 09:43:14
Message: <56c1e402$1@news.povray.org>
Yes, I will do exactly that (mirrored copied opposite edge and blurred).
Thanks.

Can you show me the scene source code? My own version really looks way
different. Thanks once more.

-----------------------------------------------

On 15.02.2016 08:54, Kenneth wrote:
> Here's just a single cylinder. Note the straight-line 'seam' that shows up--
> that's because the extreme left and right edges of your original image_map are
> not the same, visually. When the edges meet around the cylinder, they produce a
> visual glitch. Nothing much can be done about that, unless you modify your
> original image_map so that it's less noticeable. You could try 'blurring' the
> left and right edges.


Post a reply to this message

From: Kenneth
Subject: Re: The Colony Ship
Date: 15 Feb 2016 10:10:00
Message: <web.56c1e8face53235433c457550@news.povray.org>
Sven Littkowski <jam### [at] yahoocom> wrote:

>
> Can you show me the scene source code? My own version really looks way
> different. Thanks once more.
>

(I actually used assumed_gamma 2.0 for my tests, in v3.62, but you should use
1.0 for yours, in v3.7. The color will look somewhat different.)

-----------
#include "shapes.inc"

camera {
  perspective
  location  <-.7, .4, -2.8>
  look_at   <190, -100,  1000>
  right     x*image_width/image_height
  angle 36
}

light_source {
  0*x
  color rgb 1.3
  translate <-120, 100, 600>
}

light_source {
  0*x
  color rgb 1
  translate <25, 40, -200>
}

background{rgb .3}

#declare Fn_1 = function
{
 pigment
 {
  image_map {
   jpeg "colony ship i - heightfield landscape 1000px.jpg" once interpolate 2 }
 }
}

#declare TheLandscape = object
{
 HF_Cylinder(function { Fn_1(x,y*1.7,z).red },
                                             1,
                                             0,
                             <int(100*pi),100>,
                                             1,
                                            "",
                                       <0,0,0>,
                                     <0,1.7,0>,
                                           0.5,
                                            0.1
            )
}


 object {TheLandscape
 texture{pigment {rgb 3*< 0.05, 0.25, 0.0 > }finish{ambient .3 diffuse .7}}
 rotate 80*x
}


Post a reply to this message

From: clipka
Subject: Re: The Colony Ship
Date: 15 Feb 2016 13:48:48
Message: <56c21d90$1@news.povray.org>
Am 15.02.2016 um 16:05 schrieb Kenneth:

> (I actually used assumed_gamma 2.0 for my tests, in v3.62, but you should use
> 1.0 for yours, in v3.7. The color will look somewhat different.)

Speaking of gamma...

> #declare Fn_1 = function
> {
>  pigment
>  {
>   image_map {
>    jpeg "colony ship i - heightfield landscape 1000px.jpg" once interpolate 2 }

... you should add "gamma 1.0" after the filename (or whatever your
assumed_gamma setting is).


When used in an image_map, POV-Ray by default assumes that the image
uses gamma encoding (which most people think is linear but actually
isn't), and needs to be converted to POV-Ray's truly linear colour space
upon loading (presuming assumed_gamma is 1.0).

However, when an image is used to represent terrain height rather than
colours, the usual approach is to encode terrain height in a truly
linear fashion. If you use an image in a height_field, POV-Ray takes
this into account, and performs no gamma adjustment on the image data
whatsoever (unless you explicitly tell it otherwise).

With a HF_Cylinder, POV-Ray cannot do this automatically, because it has
no way of knowing that the colours in the image_map will ultimately be
converted into height values. Therefore, by default it /will/ perform
gamma adjustment.

Specifying "gamma 1.0" after the filename tells POV-Ray that the image
data is encoded linearly, so if "assumed_gamma" is also set to 1.0
POV-Ray's gamma adjustment for that particular image is a 1:1 mapping,
effectively leaving the data unchanged.


Post a reply to this message

From: Alain
Subject: Re: The Colony Ship
Date: 16 Feb 2016 14:32:50
Message: <56c37962$1@news.povray.org>
Le 16-02-15 06:40, Sven Littkowski a écrit :
> When I try in Photoshop, I cannot save anymore as JPG.
>

You need to export to JPG/JPEG, PNG,...


Post a reply to this message

From: Sven Littkowski
Subject: Re: The Colony Ship
Date: 16 Feb 2016 20:28:24
Message: <56c3ccb8@news.povray.org>
Thanks. Got it. :-)

On 16.02.2016 14:33, Alain wrote:
> You need to export to JPG/JPEG, PNG,...


Post a reply to this message

From: Mike Horvath
Subject: Re: The Colony Ship
Date: 23 Feb 2016 00:05:05
Message: <56cbe881$1@news.povray.org>
I just found this:

http://news.povray.org/povray.binaries.images/thread/%3Cweb.4d5913dd16b39e34ec13f70a0@news.povray.org%3E/

http://news.povray.org/povray.binaries.images/thread/%3Cweb.4d54751172cba645ec13f70a0@news.povray.org%3E/

I'm not sure how everything stays lit. But it looks cool nonetheless.


Mike


Post a reply to this message

<<< Previous 23 Messages Goto Initial 50 Messages

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