博客

  • 3dsmax建筑效果图作品-下午的水建筑

    3dsmax建筑效果图作品-下午的水建筑

    分享一个个人作品,该作品是根据照片3dsmax建模,Vray渲染,Ps后期,照片圆形是米兰的一个公共建筑,具体名称我忘记了,大概是类似机场这样的公共设施吧。

    ​这个图的建模部分非常简单,把图片导入3ds max,估算照片的焦距,再做相机对位直至3dsmax的相机角度和照片一致就好了,剩下的工作就是用editable poly拉拉扯扯一些线条或曲面就把建筑做完。制作时要注意区分要面片的材质ID号,这后期做材质渲染便于处理材质。

    ​关于建模还有另一个细节就是在玻璃后面的地方由于距离稍远,我不清楚那个位置的细节,那我索性把前面的模型直接复制到后面充当远景部分。

    ​关于材质:这里最重要的材质是水材质,如果要很好表现水的材质,我们一定要知道水材质的特性。那水究竟有什么特性呢?水如果要在效果图上表现出来,必须有反射性、折射效果和表面不平整效果,至于颜色的表现可以用后期或者水底部材料表现。本图中我给水赋予比较强的反射效果,其实也处于场景中有大量的实体提供给水做反射的素材,有这些素材想要表现水的质感是相当容易的,另外的为了表现水折射后水底的质感,我特意找一张干裂的石头贴图赋予了水底地面,适当给一些贴图置换参数,这样地面质感表现比较强烈一些。水底表面凹凸比较容易,只要给水Bump附上Noise贴图,并调整适当的参数即可。

    ​关于灯光:非常简单就一个Vray太阳光,时间点设定为下午时间。之所以选择下午主要考虑后期有东西做。

    ​关于后期:制作下午的光线效果,我这里用了灯光渲染滤镜做下图光线斜射光照效果,用模糊滤镜加柔光图层叠加模式做了光线散射磨砂效果。

  • grasshopper曲线点变形算法

    grasshopper曲线点变形算法

    grasshopper曲线点变形算法

    算法详解:

    ​绘制一列圆形曲线的等分点列表,把每一个点做移动的运算,在本例子中点的运动方向是按这圆心指向等分点的方向,使用到的运算器是Vector 2Pt,如果是单纯指定方向的话,那每一个点的运动的距离是一样的,那就没有变化了。

    ​这样给移动的方向重新赋予新的值,这个数值是可以随意变化的,赋值的运算器是amplitude,V端口输入方向向量,A端口输入数值。

    ​A端口我用Graph Mapper运算器生成数值数列,这个运算器可以选择几种内定的函数曲线,通过曲线函数计算出各种数据列表。右键菜单选择函数类型,双击进入函数参数设定,本实例中Y的输出值范围设定为0-50。

    ​函数的左边的输入端口要输入一个线性数据,这个线性数据的值一般为等差数列,而且数列的值的范围一般等于曲线函数的取值范围。

    输入值

    算法下载

    Graph_mapper.gh

    grasshopper算法教学,grasshopper运算器教程

  • grasshopper数据列表位置调整算法-数据混合

    grasshopper数据列表位置调整算法-数据混合

    今天写一个有趣的grasshopper小算法,是关于数据列表位置调整的。

    算法描述:已知数列“0,1,2,3,4,5,6,7,8,9”,经过算法调整之后得到一个新的数列“1,0,3,2,5,4,7,6,9,8”。

    算法详解:已知数列用Series得到,把“0,1,2,3,4,5,6,7,8,9”分流(Dispath)为“0,2,4,6,8”和“1,3,5,7,9”两个数列。用Weave混合两个数列,Weave运算器“0”和“1”端口输入列表,P端口输入两个整数但是只能是0或者1,0和1顺序决定了混合后新列表的数字排序。算法如上图

  • grasshopper浮点数转化为整数的方法-字符串分割法

    grasshopper浮点数转化为整数的方法-字符串分割法

    grasshopper浮点数(小数)转化为整数的方法

    有时候是需要把数据的浮点数转化为整数的,grasshopper也可以自动的把浮点数转化为整数的,它这种转化的方法是使用了四舍五入的方法,比如下图,0.25转整数后是0,2.938转化后是3

    在计算机编程语言里面还有一种转化整数浮点数的方法,这种方法是也广泛应用的,但是在grasshopper中我本人没有找到相关的运算器能直接转换,这种转化的方法就是割舍。割舍指的是把小数点后面的数据全部清除,只保留整数部分。那如果能够使用割舍的话,那我们能找到比较准确的寻找到物体ID(列表中的位置),下面的算法是一个比较简单的方式获取到整数部分。

    算法详解


    1. 把数据转化为字符串,字符串就是以A-Z,a-Z和0-9 或中文字等组成的文字列表
    2. 把字符用小数点分割,使用到运算器是Text Split,Text Split的C端口输入一个小数点即可,T端口输入数值或字符串形式的数据,如果是数值它会自动转换的,记住自动转化在grasshopper中大部分都是允许的。
    3. 获取小数点前面的数据

    算法如下图

    算法下载:

    Gets an integer.gh

    关键字:grasshopper算法,grasshopper教程

  • grasshopper按照曲线做排序的算法

    grasshopper按照曲线做排序的算法

    昨天的文章《grasshopper渐变的并且随机不等数量边数的多边形阵列算法》我这里写了一个算法是做边数逐渐增加的多边形阵列,它渐变是从下到上变化的,那如果我们要从上到下或者指定任意角度方向变化,那可不可以实现呢?那么我们今天就来说这个话题。

    其实从根本上说,多边形边数的变化归根结底是点的排序的变化,每个点的排序发生改变了,那生成的多边形的排序也就跟着改变了,那一个按顺序变化的值的列表(指的是边数值列表)赋予多边形数据列表的边数端口后,多边形的形态就发生改变了。(上个实例中随机边数的值的排列,这个排列是从小到大变化的)。

    ​简而言之就是一个列表变化了,那结果是发生改变。当然我们要做的就是定制改变列表顺序的规则。

    效果图如下图所示,曲线的端点位置是三角形,末端的位置的多边形的边数最多。

    Sort_Along_Curve这个运算器P端口输入点列表,C端口输入曲线,P输出端口输出点新的点阵列,I端口输出点的排序列表。

    算法下载

    sort_along_curve_list.gh

    关键字:grasshopper教程,grasshopper算法

  • grasshopper渐变的并且随机不等数量边数的多边形阵列算法

    grasshopper渐变的并且随机不等数量边数的多边形阵列算法

    grasshopper渐变的并且随机不等数量边数的多边形阵列算法

    案例描述

    一个有渐变机理的多边形阵列,自下而上多边形的边数逐渐增加形成变化的机理。


    算法

    1. 建立网格点
    2. 在网格点上生成多边形
    3. 多边形的段数(Segment)端口输入随机的数值
    4. 随机数值要重新按最小到最大排列,使用的运算器是Sort List

    效果图

    关于Sort List

    Sort List是做数据列表索引位置重排的运算器

    默认情况的是把数据按从小到大的顺序排列,它的A端口默认情况的是空参数的,但也能执行运算器,如果要自己定义排列顺序,则可以在A端口重新输入一个线性的等差数列,这个输入数列可以用Serise生成,这样重新生成的数据位置就是我们自定义的列表顺序了。

    关键字:grasshopper算法,grasshopper教程,草蜢教程

    grasshopper算法文件下载

    sort_list.gh

     

  • grasshopper中删除指定边数的多边形

    grasshopper中删除指定边数的多边形

    grasshopper生成随机边数的多边形阵列,但是删除边数等于5的多边形。

    算法的思路

    1. 生成网格阵列
    2. 网格中心生成多边形
    3. 给多边形赋予随机的边数
    4. 判断边数是否等于5.在判断运算器中“不等于端口”中,如果不等于5,则返回ture,否则返回false。

    算法详解


    建立10×10的网格,C端口输出单个网格矩形,Area运算器计算网格中心,C是输出网格中心点,在C端口点击右键选择 Flatten将数据拍平,拍平后便于后面的数据组合。接着生成多边形阵列,给多边形赋予随机的“段数”值,算法如下图

    效果如下图

    判定Equality运算器用于判断A端口输入的值是否等于B端口值,“=”端口判断是否等于,“≠”判断AB参数是否不等于,不等于为True,等于为False,这两个端口是输出相反结果的。Cull  Pattern运算器是用于删除一个列表(List)数据的,删除的依据是判断P端口输入的布尔值(也就是True和False),如果输入True则不删除列表中的数据,如果输入False就是删除列表数据。

    删除边数等于5的多边形的结果

    ​草蜢算法下载

    equality_cull_Pattern.gh

    关键字:草蜢算法教程,grasshopper算法教程

  • grasshopper楼梯算法之二

    grasshopper楼梯算法之二

    较早之前也写过楼梯算法,大家可以到这里去查阅下《grasshopper参数化楼梯》,比较两者之间的不同之处,两个都能很快速的创建楼梯。今天分享的这个grasshopper楼梯生成的算法我个人觉得更加的快速,消耗资源更少,原因是这次的算法生成的楼梯都是直接生成点,在串联点生成楼梯轮廓的,在grasshopper中点这种对象并不是一种实体(显示在画面点的标示还是会占用显卡资源,但是不多),点仅仅是一种数据形态,也就是说点只是由XYZ三个坐标构成的,仅仅是数据的话,那计算当然是快的了。

    先看看这个楼梯效果图,可以看到楼梯都是点构成的。

    算法详解


    先定义楼梯踏步的长宽高和数量,让我们创建的这个楼梯具有可控制参数,高度等值传入 Series中生成等差数列,这个踏步的等高值就创建好了,这里要注意的有两个值,我这里称之为踏步根部点和踏步顶点。等高值输入Construct Point(构建点运算器)生成一系列的点。

    第二步,这里是对点做些添加和删减的操作

    1.Shift运算器是偏移作用,如果从最后的点往前面偏移布尔值为false时,删除最后一个点,

    2.List Length统计点的数量,输出数量值减去1,后面连接List Item刚好可以选择到最后一个点,再把这个点沿着曲线镜像,那这个点就跑到楼梯的下面去了,当然这个步骤可以用别的方法代替。

    第三步,串联做好的曲线

    算法文件下载

    stair_grasshopper.gh

  • grasshopper 两点绘制贝塞尔曲线

    grasshopper 两点绘制贝塞尔曲线

    grasshopper 两点绘制贝塞尔曲线

    算法详解

    1. 在犀牛视窗上绘制两个圆圈
    2. 等分点曲线
    3. 其中一个等分点的位置做偏移处理
    4. 等分点运算器的T端口输出等分点在曲线上位置的切线方向,如下图所示
    5. T端口输出的切线方法数值输入一个乘法运算器上,乘以B端口的值,可以随意调节切线向量的大小
    6. 贝塞尔曲线运算器,A和B输入两条曲线的等分点,At和Bt分别输入贝塞尔曲线,
    7. ​效果图如下图

     

  • grasshopper找到圆球的任意点并且随机两个点做去面上的连线

    grasshopper找到圆球的任意点并且随机两个点做去面上的连线

    grasshopper找到圆球的任意点并且随机两个点做去面上的连线。

    算法详解

    1. 绘制圆球体
    2. 等分球体曲面
    3. 找到球体曲面的划分的uv点
    4. 分解uv点的坐标Z的值
    5. 把Z值输入随机运算器
    6. 得到的值在组合成点
    7. 点输入曲面分析运算器中得到曲面上的任意点。
    8. 分流运算器把点分为两个支流,支流数据元素分解为单个一组的树形数据。
    9. 使用曲面上两点绘制曲线运算器绘制曲面上的曲线
    10. 最终效果图
    11. ​关键字:grasshopper教程,grasshopper算法,grasshopper寻找曲面上的点,grasshopper曲面上绘制曲线
      1. 算法文件下载
      2. 球上任一点.gh