在vue项目中经常会用全局的变量,或者定义全局的方法
首先新建一个utilsjs的文件,里面放上你需要的全局方法以及变量呀
举个例子
完事之后呢?
在mainjs里面申明一下哈
这样你就可以全局使用啦!再需要的地方你就写
变量的话同理哟!
下班下班~~Vue视图的变化会影响数据的更新,当Vue视图发生变化时,Vue会自动检测数据的变化,并重新渲染视图。Vue会使用它的响应式系统来检测数据的变化,并重新渲染视图,从而达到视图和数据的同步更新。场景搭建
01:首先,在场景中建立摄像机,利用当前摄像机的角度并根据构图简单的摆放出石头、树和石阶的位置及透视关系。
02:根据摆放的位置细化石头及石阶模型。制作时,注意场景中石头摆放的透视关系,以及控制石头的面数,删除看不到的面需要删除以节省渲染时间。
树木形状的调节与树木贴图的制作
01:使用Paint Effects建立树。在Visor的trees中找到birchBlowingLight树的笔刷类型,通过笔刷在场景中任意位置绘制出初始树的形态。因为后续还可以继续调节,所以这里随意绘制即可。
02:在树的属性面板中,birchBlowingLight节点下调节Creation和Growth的参数。具体参数如下:
注:以下参数是为了配合此场景的构图而设置的,切记严重模仿。
03:调节好树的位置与形状之后,执行Modify下的Paint Effects to Polygons,将Paint Effects建立出的笔刷树转成Polygon形式,具体参数如下:
04:制作树叶贴图,在Photoshop中建立10241024像素且分辨率为150的项目。
05:由于现实生活中树叶在树上的位置和角度的不同,我们会看到树叶的正面与背面,所以为了使树叶更多样、更真实,我在这里收集了一棵树的9片叶子,拍摄他们的正面与反面,按33的方式摆放。
06:提取树叶的通道,使树叶正反两面的通道一致;并存储为32位的tga格式,目的是让Maya提取Alpha通道变为透明。
07:制作树叶的bump贴图,将正面color去色,对其调节曲线,使黑白对比明显。
08:制作树叶的Reflection反射贴图,和制作bump贴图方法一致,但整体更亮一些。
09:制作树叶Refraction折射贴图,这里提取树叶的叶筋,擦去多余部分。
10:制作树干的color和bump与制作树叶方法大致相同。
树材质节点的链接
01:打开Hypershade,创建一个mental ray下的mia_material_x材质球并赋予给树叶。
02:调节mia_material_x材质球参数,具体参数如下:
03:在生活中观察树叶的时候我们会注意到,树叶的正面与反面的样子是不相同的,所以为了真实我们建立一个mib_twosided双面材质节点,将我们制作树叶的正面和反面的贴图赋予到此节点上。首先建立两个2D Textures下File节点,分别将文件的路径指定到做好的树叶贴图的正面与反面(命名为yezi_Front和yezi_Back)。
04:再建立Utilities下的Gamma Correct节点,将正面和反面的贴图链接到Gamma Correct节点的value上。并将Gamma值改为0454。使树叶的Gamma值还原成真实值。
05:建立mental ray下的mib_twosided双面材质节点。
06:将链接正面和反面的Gamma Correct的节点分别对应链接到mib_twosided的Front和Back上。
07:将mib_twosided材质链接到mia_material_x(yezi)材质球的diffuse上。这样观察场景里的树叶正面与反面就不同了。
08:建立2D Textures下File节点路径指定到做好的bump材质,链接到mia_material_x材质球的Standard Bump上,并将bump节点的Bump Depth改为05。使树叶具有凹凸。
09:建立Utilities下的Multiply Divide,复制树叶正面节点(yezi_Front1)和Gamma节点,将其链接到Multiply Divide的Input1上,将Input2改为4。
10:将Multiply Divide节点链接到mia_material_x材质球的refr_trans_color上。
11:建立2D Textures下File节点路径指定做好的refr贴图上,分别链接到yezi_Front1的colorGain上和mia_material_x材质球的refr_color上。使树叶的叶筋部分颜色更深并且具有折射效果。
12:为了保留叶子部分,去掉贴图周围不需要的部分,我们抠掉贴图Alpha通道,使除叶子外多余的部分变为透明。建立Utilities下的Luminance和Reverse节点。
13:将链接mib_twosided节点的正面贴图yezi_Front链接到Reverse的other上,使outTransparency和input链接。
14:然后将Reverse节点链接到Luminance节点的value上。链接后将Luminance节点链接到mia_material_x材质球(yezi)属性下Advanced的Cutout Opacity上。这样渲染时树叶周围多余的颜色部分就看不到了,只留下树叶。
15:在现实生活中,在被光线直接照射的地方会更亮更透明一些,为了使叶子背光处更为明亮,我们建立mental ray下的mib_twosided节点和Utilities下的Luminance节点。
16:将mib_twosided节点的Front改为灰色,Back改为白色。然后将mib_twosided节点链接到Luminance节点的value上。
17:将Luminance节点链接到mia_material_x材质球(yezi)属性下BRDF的90 Degree Reflection上。
18:这样树叶的材质节点链接完成。
19:树干和石头的材质链接与树叶链接方式一致,但只需要color与bump贴图。将凹凸节点Bump Depth值改为05。
20:为了使9种不同的叶子随机分布在树枝上,需要调节树叶的UV,这里使用一个叫做djPFXUVs Layout的插件。选中树叶后点击插件的Layout Uvs,这样9种叶子贴图将随机分布在树叶上。为了场景中树木的多样性,可以根据需求多做几组树叶,再对树的形状进行适当的调整(方法同上),使场景更为真实,具有更高的可看性。
21:制作草地。选择地面,点击Rending模块下Paint Effects下的Make Paintable,这样使笔刷建出来的草地贴合地面。使用Paint Effects建立草地。在Visor的grasses中找到grassBermuda笔刷类型,通过笔刷在场景中适当位置绘制出初始草的形态。22:草地的材质贴图方法和制作树叶的一致,建立出的草叶长短不一,无法使用插件,为了确保建立草的UV正确,将草地属性下的Creation中的Length Min和Lenght Max的值相同,让每根草的长度一致。这样草的UV就符合插件使用的要求,为了增加细节使草地具有长短不一的真实效果,我们可以多创建几组草,将Length Min和Lenght Max的值更改,同时注意二者数值相同;这样草地就有了参差不齐的效果。(草叶的贴图制作方法和树叶的制作方法一致)。
灯光节点链接与渲染
01:在摄像机角度建立物理天光。
02:为了使渲染出的场景更为真实细腻,具有可调性。在Hypershade下建立Lenses的mia_exposure_photo节点,将此节点链接到mia_physicalsky1的other上,使其message与miSkyExposure链接。再将其链接到cameraShape1的default上。
03:将mia_exposure_photo节点中的F Number改为8;将mia_physicalsky1节点中的R/G/B Unit Conversion分别改为0318。
04:为了使渲染出的更细腻,具有更多的细节,在Render Settings下Commom中格式改为OpenEXR格式,并渲染单帧,Passes中加入景深层;将Quality下Framebuffer改为432浮点类型,质量为产品级别即可渲染。
背景的制作
01:在Vue中点击左侧标签栏的图标,建立远山和海洋对其进行简单的调整。
02:建立好场景之后,对山的材质进行更改,选择上在右侧材质球上点击右键Load a Material,打开材质库,选择适合的材质球赋予材质。
03:材质完成之后在右侧预览窗口观察,调节好之后,点击上面照相机图标进行渲染。如果效果不理想继续调节。
最终合成
01:在Nuke中导入渲染好的和背景。将场景文件的colorspace改为sRGB,添加ColorCorrect,ColorLookup等节点对其较色。
02:将渲染好的背景和素材飞鸟添加Transform节点进行位置调整,并添加LightWrap节点使背景和鸟相融合,更为整体,最后添加Merge节点与场景Merge。
03:为了达到近实远虚的效果,在下游添加ShuffleCopy节点提取场景中景深信息,再添加Zblure,使远处模糊,
04:添加Clamp节点使画面色彩RGB值不大于1小于0;最后添加Write节点渲染输出。
Vue是一个基于MVVM模式数据驱动页面的框架,它将数据绑定在视图上。属于实现单页面应用的技术。
首先,vuejs在实例化的过程中,会对实例化对象选项中的data
选项进行遍历,遍历其所有属性并使用Object把这些属性全部转为getter/setter。同时每一个实例对象都有一个watcher实例对象,他会在模板编译的过程中,用getter去访问data的属性,watcher此时就会把用到的data属性记为依赖,这样就建立了视图与数据之间的联系。当之后我们渲染视图的数据依赖发生改变(即数据的setter被调用)的时候,watcher会对比前后两个的数值是否发生变化,然后确定是否通知视图进行重新渲染这样就实现了所谓的数据对于视图的驱动。通俗地讲,它意味着我们在普通
HTML模板中使用特殊的语法将DOM“绑定”到底层数据。一旦创建了绑定,DOM将与数据保持同步。每当修改了数据,DOM便相应地更新。这样我们应用中的逻辑就几乎都是直接修改数据了,不必与DOM更新搅在一起。这让我们的代码更容易撰写、理解与维护。
Vuejs的数据驱动就是通过MVVM这种框架来实现的。MVVM框架主要包含3个部分:model、view和viewmodel。
Model:指的是数据部分,对应到前端相当于javascript对象
View:指的是视图部分,对应前端相当于dom
Viewmodel:就是连接视图与数据的中间件通讯
数据(Model)和视图(View)是不能直接通讯的,而是需要通过ViewModel来实现双方的通讯。当数据变化的时候,viewModel能够监听到这种变化,并及时的通知view做出修改。同样的,当页面有事件触发时,viewMOdel也能够监听到事件,并通知model进行响应。Viewmodel就相当于一个观察者,监控着双方的动作,并及时通知对方进行相应的 *** 作。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)