POV-Ray : Newsgroups : povray.binaries.images : Releasing kobldes v0.59-2a: second example image Server Time
13 Nov 2024 17:35:46 EST (-0500)
  Releasing kobldes v0.59-2a: second example image (Message 1 to 9 of 9)  
From: Kene
Subject: Releasing kobldes v0.59-2a: second example image
Date: 10 Oct 2010 12:55:01
Message: <web.4cb1ef71a6ab2232531cc5f00@news.povray.org>
Here is a second shot of the sample project image.

Kene


Post a reply to this message


Attachments:
Download 'kobldes036a.png' (286 KB)

Preview of image 'kobldes036a.png'
kobldes036a.png


 

From: Thomas de Groot
Subject: Re: Releasing kobldes v0.59-2a: second example image
Date: 11 Oct 2010 03:21:14
Message: <4cb2baea@news.povray.org>
"Kene" <nomail@nomail> schreef in bericht 
news:web.4cb1ef71a6ab2232531cc5f00@news.povray.org...
> Here is a second shot of the sample project image.
>
> Kene
>

Very nice indeed. I remember your first steps with these macros...

Interesting building with no doors.... :-)

Only the curved wall seems at odds here: It does not join properly with the 
straight walls.

Thomas


Post a reply to this message

From: Kene
Subject: Re: Releasing kobldes v0.59-2a: second example image
Date: 11 Oct 2010 13:00:00
Message: <web.4cb3418751d9757a45c695ee0@news.povray.org>
> Only the curved wall seems at odds here: It does not join properly with the
> straight walls.

Yeah... that is a problem I have shelved until I can come up with a more
efficient and generic way to do it. I can calculate the intersections but my
problem is twofold.

1. There does not seem to be a standard way to clean curved walls. It happens
differently with different circumstances. I can impose one way but then I can't
solve the number 2 problem.
2. I cannot seem to understand prisms enough to use it in curved walls. I need a
definite radius and diameter which I can't find how to get from any of the
different types of prisms. I can force cylinders to do it but I have decided to
let the problem simmer for a while.

Do you have any suggestions?


Post a reply to this message

From: Thomas de Groot
Subject: Re: Releasing kobldes v0.59-2a: second example image
Date: 12 Oct 2010 03:53:11
Message: <4cb413e7$1@news.povray.org>
"Kene" <nomail@nomail> schreef in bericht 
news:web.4cb3418751d9757a45c695ee0@news.povray.org...
>
> Do you have any suggestions?

I have no ready solution I am afraid. A dirty way to solve it, maybe, would 
be to increase the length of the arc a tiny bit, so that the inner face of 
the cylinder would join the straight walls? Not elegant, I know... :-(

Thomas


Post a reply to this message

From: Kene
Subject: Re: Releasing kobldes v0.59-2a: second example image
Date: 12 Oct 2010 07:05:00
Message: <web.4cb43faf51d9757a531cc5f00@news.povray.org>
"Thomas de Groot" <tDOTdegroot@interDOTnlANOTHERDOTnet> wrote:
> "Kene" <nomail@nomail> schreef in bericht
> news:web.4cb3418751d9757a45c695ee0@news.povray.org...
> >
> > Do you have any suggestions?
>
> I have no ready solution I am afraid. A dirty way to solve it, maybe, would
> be to increase the length of the arc a tiny bit, so that the inner face of
> the cylinder would join the straight walls? Not elegant, I know... :-(
>
> Thomas

Yeah... and that is my only solution so far. But it means that kobldes must
detect which end is inside or outside so that it can be sliced off. of course it
forces the use of curved walls in a way that makes one end always able to be cut
off, if a clean connection is desired. For example the situation in the image
above will never clean.

This is why I have been hesitant to implement it but it seems that is my only
option so far. Thanks for an opportunity to reinforce this.

Yeah, it seems like ages since I started this project. Always looking forward to
finishing the next set of capabilities.


Post a reply to this message

From: Alain
Subject: Re: Releasing kobldes v0.59-2a: second example image
Date: 12 Oct 2010 15:11:05
Message: <4cb4b2c9@news.povray.org>

> "Thomas de Groot"<tDOTdegroot@interDOTnlANOTHERDOTnet>  wrote:
>> "Kene"<nomail@nomail>  schreef in bericht
>> news:web.4cb3418751d9757a45c695ee0@news.povray.org...
>>>
>>> Do you have any suggestions?
>>
>> I have no ready solution I am afraid. A dirty way to solve it, maybe, would
>> be to increase the length of the arc a tiny bit, so that the inner face of
>> the cylinder would join the straight walls? Not elegant, I know... :-(
>>
>> Thomas
>
> Yeah... and that is my only solution so far. But it means that kobldes must
> detect which end is inside or outside so that it can be sliced off. of course it
> forces the use of curved walls in a way that makes one end always able to be cut
> off, if a clean connection is desired. For example the situation in the image
> above will never clean.
>
> This is why I have been hesitant to implement it but it seems that is my only
> option so far. Thanks for an opportunity to reinforce this.
>
> Yeah, it seems like ages since I started this project. Always looking forward to
> finishing the next set of capabilities.
>

Your curved walls are presently cut by boxes or planes that are oriented 
radialy. OK for self standing walls or curved walls that need to 
continue as straight ones.
They should be cut by box or plane that are parallel to the wall the 
curved wall connect to, then you need to also remove the rest of the 
cylinder. There is also nothing wrong in over shooting and hiding part 
of the curve inside adjacent walls. This should not cause any problem as 
long as the curved wall is the same thickness, or thinner, as the other 
walls.

Using prisms, you need to generate many points that are placed along a 
circle. Maybe as many as 1 point for each degree along the curve. Then, 
you can use a cubic_spline to smooth out the curve.
You can use sin(angle) and cos(angle) and multiply those by the actual 
radius of the wall. It's then easy to have different start and end angle 
for the inner and outer surfaces. Just make sure that you use a slightly 
longer arc to hide it's ends inside the other walls.



Alain


Post a reply to this message

From: Kene
Subject: Re: Releasing kobldes v0.59-2a: second example image
Date: 12 Oct 2010 20:35:00
Message: <web.4cb4fe6251d9757a531cc5f00@news.povray.org>
> Your curved walls are presently cut by boxes or planes that are oriented
> radialy. OK for self standing walls or curved walls that need to
> continue as straight ones.
> They should be cut by box or plane that are parallel to the wall the
> curved wall connect to, then you need to also remove the rest of the
> cylinder.

Yep! That seems to be the only interesting solution right now.

> There is also nothing wrong in over shooting and hiding part
> of the curve inside adjacent walls. This should not cause any problem as
> long as the curved wall is the same thickness, or thinner, as the other
> walls.

That will not be acceptable if the intention is to actually use the resulting
model to construct a building which is the goal of kobldes.

> Using prisms, you need to generate many points that are placed along a
> circle. Maybe as many as 1 point for each degree along the curve. Then,
> you can use a cubic_spline to smooth out the curve.

I experimented with this for quite a while but the curve produced was not
consistent. It may be perfectly curved for a couple of circumstanced but there
was always a situation when it would throw a dark spot or a misaligned edge
somewhere. Generally handling many UV values made it too tedious for me. It was
no longer fun!

> You can use sin(angle) and cos(angle) and multiply those by the actual
> radius of the wall. It's then easy to have different start and end angle
> for the inner and outer surfaces. Just make sure that you use a slightly
> longer arc to hide it's ends inside the other walls.
>

Perhaps an illustration? I think chopping up the ends of cylinders as you
alluded to in the beginning is a much more interesting solution.


Post a reply to this message

From: Alain
Subject: Re: Releasing kobldes v0.59-2a: second example image
Date: 13 Oct 2010 13:44:35
Message: <4cb5f003@news.povray.org>

>> Your curved walls are presently cut by boxes or planes that are oriented
>> radialy. OK for self standing walls or curved walls that need to
>> continue as straight ones.
>> They should be cut by box or plane that are parallel to the wall the
>> curved wall connect to, then you need to also remove the rest of the
>> cylinder.
>
> Yep! That seems to be the only interesting solution right now.
>
>> There is also nothing wrong in over shooting and hiding part
>> of the curve inside adjacent walls. This should not cause any problem as
>> long as the curved wall is the same thickness, or thinner, as the other
>> walls.
>
> That will not be acceptable if the intention is to actually use the resulting
> model to construct a building which is the goal of kobldes.
>
>> Using prisms, you need to generate many points that are placed along a
>> circle. Maybe as many as 1 point for each degree along the curve. Then,
>> you can use a cubic_spline to smooth out the curve.
>
> I experimented with this for quite a while but the curve produced was not
> consistent. It may be perfectly curved for a couple of circumstanced but there
> was always a situation when it would throw a dark spot or a misaligned edge
> somewhere. Generally handling many UV values made it too tedious for me. It was
> no longer fun!
>
>> You can use sin(angle) and cos(angle) and multiply those by the actual
>> radius of the wall. It's then easy to have different start and end angle
>> for the inner and outer surfaces. Just make sure that you use a slightly
>> longer arc to hide it's ends inside the other walls.
>>
>
> Perhaps an illustration? I think chopping up the ends of cylinders as you
> alluded to in the beginning is a much more interesting solution.
>
prism{...[start of your prism]

#local Angle = Out_Start_Angle; #local To_Radiant = 1/pi/2;
#while(Angle < Out_End_Angle)
	<sin(Angle*To_Radiant), cos(Angle*To_Radiant)>*Out_Radius,
	#local Angle = Angle + Step;
#end
#local Angle = In_Start_Angle; #local To_Radiant = 1/pi/2;
#while(Angle > In_End_Angle)
	<sin(Angle*To_Radiant), cos(Angle*To_Radiant)>*In_Radius,
	#local Angle = Angle - Step;
#end

[rest of your prism]
}




Alain


Post a reply to this message

From: Kene
Subject: Re: Releasing kobldes v0.59-2a: second example image
Date: 14 Oct 2010 15:50:01
Message: <web.4cb75e8551d9757a1dec65700@news.povray.org>
> prism{...[start of your prism]
>
> #local Angle = Out_Start_Angle; #local To_Radiant = 1/pi/2;
> #while(Angle < Out_End_Angle)
>  <sin(Angle*To_Radiant), cos(Angle*To_Radiant)>*Out_Radius,
>  #local Angle = Angle + Step;
> #end
> #local Angle = In_Start_Angle; #local To_Radiant = 1/pi/2;
> #while(Angle > In_End_Angle)
>  <sin(Angle*To_Radiant), cos(Angle*To_Radiant)>*In_Radius,
>  #local Angle = Angle - Step;
> #end
>
> [rest of your prism]
> }
>

Thanks for this solution. It certainly works in combination with cleaning the
ends using CSG as well. Looks like I have options now.


Post a reply to this message

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