分类: Grasshopper纹理算法

  • 20根据图片生成多边形空洞纹理

    20根据图片生成多边形空洞纹理

    纹理特色


    • 正方形矩阵排列
    • 每一个点赋予正多边形
    • 正多边形半径随着载入的图片变化其半径大小
    • 可以自由调节正多边形的旋转方向

    算法步骤


    • 1️⃣ 用square运算器制作正方形点阵
    • 2️⃣ 导入背景图并输出灰阶值
    • 3️⃣ 灰阶值作为半径值输入给多边形
    • 4️⃣ 调整多边形的角度参数
    • 5️⃣ 生成网格曲面实体

    详细步骤


    1️⃣ 用square运算器制作正方形点阵

    正方形点阵算法用的时Square运算器,这次算法是主要是限定了图片的长宽比例,比如本案例中图片的长800,宽600的纵向3:4的比例,因此用已知的长度去除以网格横向的数量,得到格子的尺寸大小,再把这个尺寸载入到Square的Size端口,这样就可以了。

    等到网格之后,用Polygon Center运算器计算出格子的中心点,这里有个点药说明的是,本次案例涉及的点面数较多,计算图形的中心用Polygon Center会好用点,它的计算比Area运算器更快。

    Grasshopper算法如下图

    2️⃣ 导入背景图并输出灰阶值。

    导入背景图用运算器是图像采样器(Image Sampler)
    双击图像采用其进入采样器内部选择图片的地址,设置采样器的输出通道,在下图所示

    1. 导入图片地址
    2. 设置最大点阵的最大范围,注意的是这里的最大范围数据一定要跟上个步骤的图片长宽一致,这样图片才能完美的覆盖点阵
    3. 选择输出颜色通道为灰阶

    3️⃣ 灰阶值作为半径值输入给多边形

    灰阶值输出的时候是0-1之间的浮点数(小数),直接给多边形的话,多边形半径会显得很小,比例非常不合适,因此给灰阶值做数值映射。

    首先把灰阶值映射成1-0的数值,这只要是原本0-1的值会让输出的结果导致生成的图片有一种“负片”的效果,所以把图片的值翻转过来。

    第二是放大灰阶值,这里采用的方式乘以二分之一网格边长的方式,这样多边形半径则被限定在单位网格之内。

    第三是要再乘以一个缩放系数,这样可以后续可以变化网格点大小,不至于完全限定死参数。

    4️⃣ 调整多边形的角度参数

    最后还得调整多边形的参数,因为多边不是圆形,直接输出的多边形有可能是横着摆放或者斜着摆放,这样就得对参数进行校正,以达到设计的目的,不过这里没有对角度校正做完全的参数化设置,如果需要修改角度,需要自行计算其旋转的角度。

     

    5️⃣ 生成网格曲面实体

    如需要输出点阵着色图案,那就生成网格曲面实体。

     

    Grasshopper算法电池图下面购买下载

  • 19自下而上随机增加消失方块纹理-Grasshopper纹理

    19自下而上随机增加消失方块纹理-Grasshopper纹理

    纹理特色


    • 消失的点阵越往上边消失得越多。

    算法步骤


    • 建立正方形点阵
    • 给每一层设置删除的编号
    • 生成表面

    详细步骤


    以下是Grasshopper算法:

    Grasshopper算法电池图下面购买下载

  • 18自下而上渐变展开方块-Grasshopper纹理

    18自下而上渐变展开方块-Grasshopper纹理

    纹理特色


    • 渐变的菱形铺满斜网格矩阵
    • 渐变的方式是体现在菱形底角两个边界的开合大小。

    算法步骤


    • 1生成斜铺的四边形
    • 2计算出四边形最底下的点
    • 3通过距离值映射成图形的开合角度
    • 4平面线布尔相交运算生成图形
    • 5创建网格实体
    • 6Grasshopper算法电池图下连接关系

    详细步骤


    1生成斜铺的四边形

    用Voronoi泰森多边形生成斜向菱形网格,菱形往里面偏移一点距离最终得到菱形单体矩阵。


    以下是Grasshopper算法:

    2计算出四边形最底下的点

    分解点的XYZ坐标值,然后排序Y的顺序,获取Y值的最小值。

    以下是Grasshopper算法:

    3通过距离值映射成图形的开合角度

    计算菱形的最低点到目标点的距离,把距离重映射(Remap)成图形开合的角度。

    以下是Grasshopper算法:

    4平面线布尔相交运算生成图形

    根据上文计算出的角度绘制直线,用生成的直线创建几何图形,这个几何图形再跟基础的菱形做布尔交集运算(Region Intersection)。

    以下是Grasshopper算法:

    5创建网格实体

    以下是Grasshopper算法:

    6Grasshopper算法电池图下连接关系

    以下是Grasshopper算法:

    Grasshopper算法电池图下面购买下载

  • 17正方形螺旋纹路纹理-Grasshopper纹理

    17正方形螺旋纹路纹理-Grasshopper纹理

    纹理特色


    • 螺旋的缩放排列的正方形平铺到平面网格内

    算法步骤


    • 1创建斜向四边形方阵
    • 2旋转缩放四边形
    • 3绘制贝塞尔曲线
    • 4连接等分点
    • 5Grasshopper算法电池图下连接关系

    详细步骤


    1创建斜向四边形方阵

    用Voronoi泰森多边形制造斜45度排列的正四边形。

    以下是Grasshopper算法:

    2旋转缩放四边形

    以下是Grasshopper算法:

    3绘制贝塞尔曲线

    以下是Grasshopper算法:

    4连接等分点

    以下是Grasshopper算法:

    5Grasshopper算法电池图下连接关系

    以下是Grasshopper算法:

    Grasshopper算法电池图下面购买下载

  • 16叶片密拼纹理-Grasshopper纹理

    16叶片密拼纹理-Grasshopper纹理

    纹理特色


    • 渐变的三角形铺满网格
    • 三角形渐变大小并非整体变化,而是一个个三角形区域单独变化

    算法步骤


    • 1创建右上单元曲线
    • 2叶子边缘曲线
    • 3扇柄节点处曲线
    • 4扇叶叶脉结构线
    • 5扇面单元体
    • 6扇面单元体定位到大三角矩阵中
    • 7Grasshopper算法电池图下连接关系

    详细步骤


    1创建右上单元曲线

    本次案例的曲线完全是参数化绘制的,所以画线的步骤相对会比较繁琐。

    前面课程提到过创建密拼图形必须是建立正3、4、6边型的基础之上,因此本案例先做了三角形做为基础几何图形的。

    具体绘制过程看下面的Grasshopper算法,我这里不赘述了,大概的思想就是筛选线、点、绘制直线等步骤,最后通过创建的点串联成曲线。叶片的右上角曲线如下图所示。


    以下是Grasshopper算法:

    2叶子边缘曲线

    其他的边缘曲线无需重新绘制,只要用到旋转,镜像,裁剪等操作就可以获取。结合下图算法文件判断一下分别代表哪几条线。

    以下是Grasshopper算法:

    3扇柄节点处曲线

    扇柄节点的曲线也是找点、画线、连线这样一套操作。

    以下是Grasshopper算法:

    4扇叶叶脉结构线

    以下是Grasshopper算法:

    5扇面单元体

    以下是Grasshopper算法:

    6扇面单元体定位到大三角矩阵中

    单元体定位到大三角形矩阵中,需要删除重合点的部分。

    以下是Grasshopper算法:

    7Grasshopper算法电池图下连接关系

    以下是Grasshopper算法:

    Grasshopper算法电池图下面购买下载

  • 15三角形阵列网点纹理-Grasshopper纹理

    15三角形阵列网点纹理-Grasshopper纹理

    纹理特色


    • 渐变的三角形铺满网格
    • 三角形渐变大小并非整体变化,而是一个个三角形区域单独变化

    算法步骤


    • 1创建基础三角形
    • 2制作内部的梯形面
    • 3创建梯形内平均线
    • 4创建三角形单元体
    • 5单元体定位到大三角形矩阵当中
    • 6创建网格实体
    • 7Grasshopper算法电池图下连接关系

    详细步骤


    1创建基础三角形

    基础三角形有三个,外围作为最后平铺边框大三角形(边长3),往里稍微偏移(偏移0.05)一点距离的三角形,这层作为平铺后消除重合点用的,预留一点点公差,最里层(缩放为0.303倍)中间空心的部分。

    以下是Grasshopper算法:

    2制作内部的梯形面

    梯形面是网格点阵列的基础形状,三角形内部的其中一个部分,形状如下图绿色部分所示。

    生成方法就是获取里面的三角形的某两条线段,使他们延长并相交,取相交线围合的形状。

    以下是Grasshopper算法:

    3创建梯形内平均线

    获取梯形两条横向对边,在两个对边之间生成平分线。

    以下是Grasshopper算法:

    4创建三角形单元体

    在平分线上做等分点并画圆形,圆形的半径值为等差数列,最后把圆形点阵旋转阵列成一个单元体。

    以下是Grasshopper算法:

    5单元体定位到大三角形矩阵当中

    单元体点位到大三角形矩阵中,但是要注意大三角形矩阵内有分正三角形和倒三角形,所以要对单元做旋转(隔开一个转60度)的处理。

    以下是Grasshopper算法:

    6创建网格实体

    以下是Grasshopper算法:

    7Grasshopper算法电池图下连接关系

    以下是Grasshopper算法:

    Grasshopper算法电池图下面购买下载

  • 14三角形花朵点阵纹理-Grasshopper纹理

    14三角形花朵点阵纹理-Grasshopper纹理

    纹理特色


    • 整个纹理表皮有渐变的花瓣平铺而成的
    • 同一个圆心环绕的六个花瓣组成一朵花
    • 相邻的花瓣有个可以组成点阵的等边三角形图案

    算法步骤


    • 1创建中心三角形、中线、中点
    • 2创建中心圆,分解中心圆
    • 3中心圆分段数分析
    • 4获取边界线生成表面
    • 5根据边界距离生成渐变半径圆形
    • 6纹理单体定位到大的三角形阵列当中
    • 7删除重复图形
    • 8创建网格实体
    • 9Grasshopper算法电池图下连接关系

    详细步骤


    1创建中心三角形、中线、中点

    根据花瓣的几何原理做出花瓣的中心三角形、对称中线和中点。

    下图的菱形上下两个顶点时候花瓣的中心圆的位置

    以下是Grasshopper算法:

    2创建中心圆,分解中心圆

    花瓣的两个顶点是从中心圆某一部分引申出来的,下面的算法是把中心圆分解成6等分,分解后的圆再根据菱形中心点旋转到菱形的底部顶点。

    以下是Grasshopper算法:

    3中心圆分段数分析

    下面算法是用来查看中心圆的分段情况。

    以下是Grasshopper算法:

    4获取边界线生成表面

    用贝塞尔曲线绘制花瓣的轮廓线,在用四个边界生成曲面平面。

    Grasshopper的贝塞尔曲线要指定起点A、起点A向量、终点B、终点B向量。

    以下是Grasshopper算法:

    5根据边界距离生成渐变半径圆形

    以下是Grasshopper算法:

    6纹理单体定位到大的三角形阵列当中

    单个花瓣定位到大的三角形矩阵中,然后根据大三角形矩阵内的三角形中心点做旋转复制6个,组成花瓣形状。

    以下是Grasshopper算法:

    7删除重复图形

    在上大三角形矩阵中旋转会产生很多重复数据,用删除重复点运算器删除掉重复的部件。

    以下是Grasshopper算法:

    8创建网格实体

    以下是Grasshopper算法:

    9Grasshopper算法电池图下连接关系

    以下是Grasshopper算法:

    Grasshopper算法电池图下面购买下载

  • 13密拼阶梯波浪渐变纹理-Grasshopper纹理

    13密拼阶梯波浪渐变纹理-Grasshopper纹理

    纹理特色


    • 整体波浪呈波浪纹
    • 每个周期波浪之间夹杂一个反向的波浪
    • 看上去像阶梯式,一级一级的形状

    算法步骤


    • 1上升下降等差数列
    • 2波浪点阵单体
    • 3波浪等间距移动
    • 4跟随波浪振幅大小变化圆形半径
    • 5直线阵列复制波浪单体
    • 6生成网格实体圆点
    • 9Grasshopper算法电池图下连接关系

    详细步骤


    1上升下降等差数列

    本案例最核心的数据就是这个上升下降的等差数列。其作用用于调整波浪的数据的偏移位数。

    下图的0、1、2、3、4、5、6、7、6、5、4、3、2、1、0


    以下是Grasshopper算法:

    2波浪点阵单体

    以下是Grasshopper算法:

    3波浪等间距移动

    以下是Grasshopper算法:

    4跟随波浪振幅大小变化圆形半径

    以下是Grasshopper算法:

    5直线阵列复制波浪单体

    以下是Grasshopper算法:

    6生成网格实体圆点

    以下是Grasshopper算法:

    9Grasshopper算法电池图下连接关系

    以下是Grasshopper算法:

    Grasshopper算法电池图下面购买下载

  • 12密拼花瓣纹理-Grasshopper纹理

    12密拼花瓣纹理-Grasshopper纹理

    纹理特色


    • 半圆形花瓣密拼

    算法步骤


    • 1创建花瓣单元体
    • 2创建正方形网格阵列
    • 3花瓣定位到正方形阵列当中
    • 4Grasshopper算法电池图下连接关系

    详细步骤


    1创建花瓣单元体

    花瓣的单体在本案例是用犀牛创建的,主要是考虑参数化代码体积,这个花瓣要完全参数化制作的并非容易实现。在后面的实力有完全参数化的叶子的案例。

    制作密拼图案的诀窍就是修改密拼几何图形(正方形、等边三角形、正六边形),本案例在正方形的基础上绘制花瓣图片,这样花瓣就可以在平面上平铺密拼了。

    以下是Grasshopper算法:

    2创建正方形网格阵列

    以下是Grasshopper算法:

    3花瓣定位到正方形阵列当中

    以下是Grasshopper算法:

    4Grasshopper算法电池图下连接关系

    以下是Grasshopper算法:

    Grasshopper算法电池图下面购买下载

  • 11密拼盾牌纹理纹理-Grasshopper纹理

    11密拼盾牌纹理纹理-Grasshopper纹理

    纹理特色


    • 整个纹理由盾牌形状点阵密拼而成的
    • 每个盾牌点阵单元体内部的圆点半径大小也是带渐变变化。

    算法步骤


    • 1绘制单体半圆轮廓
    • 2求出盾牌造型顶点
    • 3盾牌造型四个边线及其平面轮廓
    • 4生成平面曲面并布点阵
    • 5点阵上布置渐变网格点
    • 6删除边角点算法
    • 7删除盾牌造型边界上的点
    • 8圆形阵列汇总
    • 9计算最大边界
    • 10阵列单体模型
    • 11创建网格实体
    • 12Grasshopper算法电池图下连接关系

    详细步骤


    1绘制单体半圆轮廓

    这个半圆轮廓的盾牌形状的其中一部分线段。

    以下是Grasshopper算法:

    2求出盾牌造型顶点

    盾牌的顶点是有上文的半圆依照中心点对称镜像得到的相交点。

    下图中下面点是对称点,上面的点是两条圆弧线相交得到的盾牌的顶点,这个顶点以下的部分就是盾牌造型的两个边界。


    以下是Grasshopper算法:

    3盾牌造型四个边线及其平面轮廓

    使用SubCurve子曲线命令得到顶点以下的子曲线,也就是盾牌的边界A(下图算法标注的A运算器),使用镜像、旋转工具可以获得盾牌BCD三个边界,总共四条边线组合成盾牌周长轮廓。

    以下是Grasshopper算法:

    4生成平面曲面并布点阵

    四边都计算得到输入到四边成面运算器(Edge Surface)得到平面曲面,然后等分曲面得到点阵图案

    以下是Grasshopper算法:

    5点阵上布置渐变网格点

    点到边缘的距离算法计算点阵上圆形的半径大小

    以下是Grasshopper算法:

    6删除边角点算法

    因为盾牌点阵是密拼图案,那么必然存在共线共点的问题,这里要删除一些相同位置的点,删除方式是通过观察的点阵的编号,得到需要删除的点编号的通用公式(下图中的x*(y+1)),还有盾牌造型底部的点(最后一个点)也一并删除.

    以下是Grasshopper算法:

    7删除盾牌造型边界上的点

    以下是Grasshopper算法:

    8盾牌圆形阵列汇总

    以下是Grasshopper算法:

    9计算最大边界

    计算最大边界作为矩形阵列的间距

    以下是Grasshopper算法:

    10阵列单体模型

    以下是Grasshopper算法:

    11创建网格实体

    以下是Grasshopper算法:

    12Grasshopper算法电池图下连接关系

    以下是Grasshopper算法:

    Grasshopper算法电池图下面购买下载