自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

niuge8905的博客

还有什么比it技术更有趣???

  • 博客(23)
  • 资源 (14)
  • 收藏
  • 关注

原创 Unity3D shader(18)——水的折射与反射

有任何shader的问题,直接qq254033230 水的折射与反射原理其实差不多,只是一个用ComputeGrabScreenPos(o.pos)来取得贴图,一个用ComputeScreenPos(o.pos)来取得贴图。另外还需要两个脚本,一个是工具类的脚本,一个是得到反射贴图的脚本。 这里直接放上核心源码:Shader "GameCore/Mobile/Water/Diffuse" {

2017-08-26 01:07:51 3656

原创 Revit二次开发——空间曲线

Revit怎么建空间曲线?其实对该软件比较熟悉的人应该知道,比较好建的是通过空间点串成空间曲线,也即通过CurveByPoints形成空间曲线。这个比较简单,就直接放一段原始代码: private void CreateAdaptiveComponentFamily(Document document) { Transaction transact

2017-08-23 23:31:33 6811 1

原创 Unity3D Shader(17)——水的折射

这里引用的是蛮牛的Unity3D Shader的进阶教程里的代码。咨询:qq254033230这里依然用的是vertex 和fragment shader来解决水的反射的问题。首先,准备两个平面,一个平面作为底图,一个平面模拟水的波动。这里要用到抓取底图的通道 GrabPass{}。然后把抓取的通道图放到水面的那张图上。另外一个难点就是要模拟水的波动,水的波动的原理如下图: 其中顶点函数代码和片段

2017-08-22 19:34:51 1823

原创 Unity3D shader(16)——“Queue”、“IgnoreProjector”、"RenderType"、Ztest、Zwrite、cull

经常在Unity3D里的shader里见到这样的Tags{"Queue"="Transparent"  "IgnoreProjector"="True" "RenderType"="Transparent"}语句,这些语句都有什么意思呢?在不同的情景上,又怎么去用好这些命令,今天就主要讨论这些问题。

2017-08-20 17:27:33 10490

原创 Unity3D shader(15)——材质(玻璃)

如有更多问题,请qq254033230咨询。有了前面的基础,就可以随意用Unity Fragement Shader来实现自己想要的效果。这里就主要以玻璃为例。首先实现玻璃的透明的特性;里面的Tags { "Queue" = "Transparent" }是为了实现透明的效果。Blend SrcAlpha OneMinusSrcAlpha为了显示透明的物体不改变后面的物体的显示效果

2017-08-19 23:03:09 10829

原创 Revit二次开发——读取cad中的文字信息

Revit读取cad的文字信息需要借助Teigha的开源dll,在程序中添加下图中红色框的dll文件的引用,其他的dll文件全部放在同一个文件夹中即可,运行的时候,会自动把这些dll文件全部复制到bin文件当中,同时,在Revit中运行插件,Revit也会自动加载这些dll文件。以下是关键方法,在Revit里读取cad文字信息,图层信息,几何信息等。using System;using ...

2017-08-16 00:18:42 12866 34

原创 Revit二次开发——怎么读取cad里的单独的一条线

今天有朋友问我怎么通过Revit读取cad里的单独的一条线,我刚开始在网上找了一下,发现并没有相关介绍。于是我自己尝试了一下,只要通过这个关键的PickObject(ObjectType.PointOnElement)方法,就可以获取到点选的单独的一条线,然后通过GetGeometryObjectFromReference转化成geometryObject即可。然后想怎么利用就怎么利用你选的信息(我

2017-08-14 13:40:20 5804 4

原创 Unity3D Shader(14)——Fragment Shader(遮挡、透明效果)

要形成遮挡透明效果,需要两个pass通道,一个pass通道渲染未遮挡部分,一个pass通道渲染被遮挡部分。这其中比较关键的一点是zwrite、ztest的用法(这个可以看官方文档及自己尝试)。具体代码及效果:Shader "Custom/FG" { SubShader { Tags { "Queue" = "Transparent" } LOD 200

2017-08-13 19:31:28 3250 1

原创 Unity3D shader(13)——Fragment Shader(简单的纹理采样)

Shader的纹理采样千变万化,正真要把所有的计算效果做出来,可以写出厚厚的一本书。这里就仅仅表达一下Fragment Shader的纹理采样的语法。 1)首先在Properties 里声明贴图 2)然后将贴图的纹理的uv坐标传导到v2f结构里 3)最后在fram函数里,计算uv坐标的变化,达到各种各样的效果。这里主要和时间(_Time)关联起来,从而形成一个动态的样图。Shader "Cus

2017-08-13 16:07:27 1335

原创 Unity3D shader(12)——Fragment Shader(模型颜色变化)

Unity3D 的shader要实现模型的颜色变化,只需要让颜色和坐标关联起来。这里先举一个vertex shader的例子,看看效果。从例子中,我们可以看到,程序自动对颜色的结果进行了混合,如果想颜色界限分明,那就需要在fragment shader里进行颜色赋值。Shader "Custom/FragmentShader" {properties{_MainColor("MainC

2017-08-13 10:48:11 2286

原创 Unity3D Shader(11)——fragment shader(边缘泛光)

shader问题解答:扣扣 2540,33230 要想实现边缘泛光,只需要将普通的diffuse反射的亮度反过来即可。所以将1减去法向量和视角点乘的值即可。Shader "Custom/FragmentShader" {properties{_SpecularColor("SpecularColor",color)=(1,1,1,1)_Shininess("Shininess",range(

2017-08-12 23:46:59 1195

原创 Unity3D Shader(10)——Fragment Shader(漫反射、phong效果、blinnPhong效果、阴影、halfLambert、渐变纹理)

Fragment Shader的效果要好于vertex shader,前者基于面,然后逐像素处理对象,后者基于顶点来处理对象,缺点就是前者计算相对复杂,会多耗费一些资源。首先对应着vertex shader(看之前的博客),来看一下Fragment的漫反射的效果。Fragment Shader的主要计算在Frag方法里计算,Vert方法主要起传递数据的作用,而vertex shader主要

2017-08-12 10:20:08 656

原创 Unity3D shader(9)——vertex shader(phong光照和BlinnPhong光照)

首先来看一下反射原理:首先通过L和N来求出R的向量,然后求出视角的向量V,最后将V和R点乘,可以求出光照强度。承接上一篇,具体代码如下:Shader "Custom/Vf Shader" {properties{_SpecularColor("SpecularColor",color)=(1,1,1,1)_Shininess("Shininess",range(1,8))

2017-08-11 23:46:40 473

原创 Unity3D Shader(8)——Vertex Shader(漫反射)

实现漫反射,首先得需要漫反射的实现原理。漫反射的光包括物体表面漫反射的光和环境光,即:AmbientLight+Diffuse另外需要了解光照的反光原理,如图:最后用一段代码来实现,首先,要有光照模式,以及Unity3D内生的一些函数。关照模式通过标签tags来添加,内生的一些函数通过include来添加。代码如下:Shader "Custom/Vf Shader" {

2017-08-11 13:09:11 495

原创 Unity3D shader(7)——Vertex Shader(顶点几何变换)

变换顶点位移,只需要处理位移前,把顶点位移变换一下即可。这里举一个简单的例子,在一个平面上,离中心距离越近,顶点越高。详见代码:Shader "Custom/Vf Shader" {properties{_R("R",float)=4.0} SubShader { PASS{ CGPROGRAM #pragma vertex vert #pr

2017-08-10 15:56:03 1555

原创 Unity3D shader(6)——vertex shader(顶点颜色变换)

Shader的顶点坐标其实和物体网格的局部坐标、世界坐标一致,只是这里需要有一个坐标转换。首先说一下Unity3D shader的坐标转换。这里首先需要了解Cg语言的标准函数库,链接地址:https://wenku.baidu.com/view/3a9db318fad6195f312ba675.html有两个转换,一个转换是将物体顶点坐标转换到Unity程序里的相机里的坐标;一个是

2017-08-09 13:49:24 7663

原创 Unity3D shader(5)——vertex shader(一)

基于顶点和片面的shader和surface shader还是有很多区别的,其中最基本的是语法区别。surface shader可以理解为是包装好的基于顶点和片面的shader语句。学习基于顶点和片面的shader语句更能理解其中蕴含的逻辑原理。1、首先看一个简单的点和片面的shader语句:Shader "Example/vf" { SubShader { pass

2017-08-06 20:31:06 497

原创 Unity Shader(4)——surface shader(三)

接着上篇讲,雾化也是很重要的一种表现效果。(这里根据官方文件整理,后期会补上各种原理)1、这里的雾化效果是根据物体和屏幕中心相关,离屏幕越近,雾化效果越明显Shader "Example/Fog via Final Color" { Properties { _MainTex ("Texture", 2D) = "white" {} _FogColo

2017-08-06 10:59:12 369

原创 Unity3D shader(3)——surface shader(二)

接着上篇,(仅仅作学习之用,不作技术参考,具体可以看unity3D官方例子)1、立方体贴图的效果,这里的立方体贴图依据的是世界坐标。以下是一个最简单的立方体贴图的shaderShader "Example/WorldRefl" { Properties { _MainTex ("Texture", 2D) = "white" {} _Cube ("Cubem

2017-08-06 00:52:20 436

原创 Unity3D shader(2)——surface shader一

这里以Unity3D的官方例子为例。外加一些自己的理解。surface shader相比于fixed shader,语法有很大的区别。首先来看一个简单的surface shader。1、给物体添加一个白色的颜色其中:"RenderType" = "Opaque" 表示渲染模式为非透明的,#pragma surface surf Lambert表示光照模型是Lam

2017-08-04 21:07:02 471

原创 Unity3D shader(1)——fixed shader

之前学了下Unity3D的shader,回头再看的时候,已经忘得七七八八了。索性直接再时间学一下,顺便记一下笔记加上些自己的理解。Unity3D最简单的渲染管线是固定渲染管线。

2017-08-04 16:34:37 667

原创 Revit二次开发----分割族

其实在revit里是不存在分割族的概念。对于基于线形的族,截面沿线都是一样,要想达到分割的状态,只需要把族基于线的那条线变短,然后再在分割点复制一个新的族即可。过程是先获得线的均分点,然后把族的线缩短,接着再复制族,即可变成均分的效果。主要方法见代码:private void DevideFamilyInstance(FamilyInstance famIns,int

2017-08-02 16:28:52 2935

原创 Revit二次开发----在项目环境中直接建族

Revit的一个比较不爽的事情是:需要在族环境中建族,然后导入到项目中。有没有什么方法不用导入族,直接在项目环境中建好族,并放到相应的位置处?好吧,这个必须有。要实现这个过程,需要通过代码做两步工作。1)打开相应的族,然后在族环境中建好族;2)将族导入进项目环境中,然后放到相应的位置处。首先第一步:需要用到IFamilyLoadOptions这个接口具体的类:using

2017-08-02 11:34:55 2200 3

spring mvc项目

springmvc测试及配置

2019-01-21

设计模式之工厂模式

设计模式之工厂模式

2018-11-29

设计模式之观察者模式

设计模式之观察者模式

2018-11-28

设计模式之策略模式

设计模式中的策略模式。根据《设计模式》一书编写

2018-11-27

Revit二次开发多版本环境终板

搭建Revit二次开发多版本环境。方便在多个版本中共用类,减少代码量以及工作量,方便代码管理。

2018-08-17

Revit二次开发多版本环境

搭建Revit二次开发多版本环境。方便在多个版本中共用类,减少代码量以及工作量,方便代码管理。

2018-08-17

Revit钢筋API使用技巧

Revit钢筋API使用技巧

2016-10-28

revit二次开发——普通钢筋(revitAPI钢筋部分帮助翻译)

revit二次开发——普通钢筋(revitAPI钢筋部分帮助翻译)

2016-10-28

revit在桥梁中的应用二次开发(1)——族

revit,桥梁,二次开发

2016-10-26

Revit在桥梁中的应用建模篇(4)——普通钢

Revit在桥梁中的应用

2016-10-18

Revit在桥梁中的应用建模篇(3)——变截面

Revit在桥梁中的应用

2016-10-18

revit在桥梁中的应用建模篇(2)——箱梁

revit在桥梁中的应用建模篇

2016-10-18

revit在桥梁中的应用建模篇(1)——T梁

revit在桥梁中的应用

2016-10-18

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除