algorithmic modeling for Rhino
Hi
I am trying to isolate any unobstructed surfaces within a certain distance from a given point. This is to represent a 500m visible radius from a standing viewpoint.
In cases where the surface is partially unobstructed, I would like to split these from the original surface at the points where they become obstructed, or rebuild only the unobstructed portion of them.
So far I have gotten to the point of getting unobstructed points on the obstacle surfaces, but am not sure how to separate them into lists per obstacle.
I am fairly new to grasshopper so I apologise for lack of technical term! Any help is greatly appreciated.
Tags:
Yeah, I forgot to internalize, my bad! You do not actually need weaverbird, I just use it to increase the face count, you can just increase it with a higher integer in mesh sphere ex. In the end, you get the obstructing surfaces from the list item component -if you do not explode the boxes you get the obstructing breps. In the 2d example the ivray works exactly like the isovist component, I just put it there to set you in the mood for the 3d solution. :)
This is amusing... Instead of placing the buildings on a tilting disk for "3D" effect, I created a configurable "Two Hill Surface" and wired it so the surface itself is an obstacle too (but is treated differently than other obstacle surfaces). And added a 'Choose Viewpoint' group to pick the center of any building as the "Viewpoint", eliminating that building from the obstacle list. Seems to work as expected though haven't done much testing.
NOTE: Disable green group while adjusting
'Choose Viewpoint' and 'Two Hill Surface'
You could take this a step further by choosing any point on any surface as the "Viewpoint", like a window in any building, instead of using the volumetric center of the selected building. But that's more complicated because the building itself must then block all views except from that "window"...
I didn't remember much about how this works but within a few minutes, I was able to divide the ground surface, use the resulting points as endpoints and pass the resulting "sampling rays" to a separate instance of 'IVRay'. This isn't the only way by any means. The video shows a headlight/flashlight approach and "sampling rays" could be done that way instead of dividing the surface as I did. Fun stuff. Play with it. Enjoy.
I also wanted to try to regulate the view angle to perform the analysis just in a certain angle.
Here you go; a "flashlight" surface with adjustable beam (horizontal, vertical and pan angles). This doesn't apply to the buildings, only the ground surface. I don't have the time or patience to do any more at this time.
Disable green group while adjusting 'Choose Viewpoint (POV slider)'
This disables the buildings but the flashlight still works on the ground surface - much faster.
OK, as often happens, take a little break and what seemed difficult is suddenly easy. I just removed the code that divided the building surfaces into "sampling ray" end points and connected those surfaces to the same 'O (Obstacle)' input of the 'IVRay' component I used for the ground surface. Simple! The buildings now cast shadows on the ground.
One more refinement... I added a "Resolution" slider that is used to compute an even distribution of horizontal and vertical points on the "flashlight" surface. A low number on the slider increases the 'point count' (because the points are closer together), a high number reduces the point count.
It adapts to changes in the horizontal and vertical angles (width and height) of the "flashlight" beam, changing the point count appropriately.
I have no words to say how much I'm grateful for your help and for the time you spent over this definition!! You really saved my life :)!! The work you have done it's amazing! Do you think it should be possible to assign to the visible points a color gradient variable with the distance and the view angle? The point is that in my opinion the quality of the vision change with the distance and the angle. I think I see in a better way the points closer to me and with the increase of the distance the 'quality of the view' decreases. On the other hand I think I also see in a better way the points that are directly in front of me and that 'quality of the view' decreases with the increase of the angle.
Clearly, many things are possible and there are many different ways. If you want to learn Grasshopper, you have to figure some things out for yourself. Have fun.
Welcome to
Grasshopper
Added by Parametric House 0 Comments 0 Likes
Added by Parametric House 0 Comments 0 Likes
Added by Parametric House 0 Comments 0 Likes
Added by Parametric House 0 Comments 0 Likes
© 2024 Created by Scott Davidson. Powered by