unity 球体内部一个球体如何能做到逐步染色

Unity5中重点推出了一套基于物理的着色(Physically Based Shading,PBS)的多功能Shader,叫做标准着色器(Standard Shader)。这套Shader的设计初衷是化繁为简。想用这样的一个多功能Shader,来代替之前多种多样的Shader各司其职,对于不同的材质效果,需要不同的Shader的局面。
Unity 5中目前有两个标准着色器,一个名为Standard,我们称它为标准着色器的标准版,另一个名为Standard(Specular Setup),我们称它为标准着色器的高光版,它们共同组成了一个完整的PBS光照明模型,且非常易于使用。其实这两个Shader基本差不多,只是有细微的属性参数上的区别。标准版这边的_Metallic(金属性)、_MetallicGlossMap(金属光泽贴图),被高光版的_SpecColor(高光颜色)、_SpecGlossMap(高光颜色法线贴图)所代替。
标准着色器主要是针对硬质表面(也就是建筑材质)而设计的,可以处理大多数现实世界的材质,例如石头、陶瓷、铜器、银器或橡胶等。同时,它也可以非常出色地处理一些非硬质表面的材质,例如皮肤、头发或布料等。
上面一段理论摘自http://blog.csdn.net/poem_qianmo/article/details/
下面是我翻译的官方金属度流程的截图(我认为金属度流程的更通用,但是由于技术限制也会有一些效果无法用这种材质实现)
可以看出光滑度(粗糙度)是存储在金属度的透明通道里的
这也就是为什么没有放贴图的时候有个smooth滑块,但是放了贴图以后就没有这项了,因为这项需要被一个通道的图片控制
下面我们来做个测试
可以在ps里做一张如上图所示的tiff或者tga格式,(估计psd也行吧)
注意可以新建一个通道,单独在上面绘制,不需要可见
另外说下png不行,它的透明通道是自动的
另外把红色通道做的和其他不一样也方便测试高光材质流程(这个可以自己调整材质测试)
然后就能得到下面图的效果
可以发现这两个参数还是非常重要的,严重影响了视觉效果
一般性的如果需要在unity里有好的PBR效果,需要三张贴图(可以说是四张图 因为金属度和粗糙度合并了)
金属度+粗糙度
如果需要更好的效果可以再增加height map ,occlusion map ,细节贴图等等
需要注意到是occ贴图在unity中遇到光照会自动计算,能显著增加空间效果
另外说下金属度和高光流程,其实两种是可以在一定程度上相互转化的,substance就可以搞定(可以看后面讲到)
两种其实也没有强求用哪种,只是金属度的参数更加理性,其他的还是要看项目的艺术效果
当然虽然两种材质在效果上有很大重合空间,也有不能达到的地方,举个例子,对于黑色几乎不反光的物体
http://blog.csdn.net/shenmifangke
金属度不能做到高光流程那么黑的效果(除非去掉环境球)
下面是金属度和流程的区别,我加了自己的想法(需要更多内容可以关注或者加我qq)
PBR图制作流程
流程上有很多东西可以使用,我这里说的主要是substance designer软件
因为unity直接支持它的材质,sbsar格式能直接在unity中使用,而且据说还有其他软件的支持性
Quxel\Substance\Maya\3dsMax\UE\U3D5\ce已经全线PBR向进化,Disney Principled BRDF就是一个很好的范例,Hyperion和最新的RenderMan都采用了这个技术。虚幻引擎4中的材质系统也是基于这个模型的简化版(Real Shading in UE4)。
SP(substancepainter)、SD(substance designer)、Quxel(NDO、DDO、3DO以及MegaScan材质库,四个合起来叫做Quixel Suite套件)这些生产工具使得美术在工作时增加了效率,理清了思路,越来越趋向于及时反馈和所见即所得,而且与几大引擎接口互导也方便了许多,很大程度的减轻了纯美术方面的负担。
下面是简单操作流程图
具体的就不说了,自己可以搜教程有很多的,需要注意到是软件有两个
substance designer是修改和创建材质的,如果需要直接刷贴图可以用substance painter 可以直接看到刷上去的效果
他们之间可以互相导,主要还是看工作流程,下面这张就是工作关系
substance designer可以导出可供unity使用的材质球
substance painter可以画贴图到substance designer看效果并修改
link贴图和模型
这里记得双击项目才能关联带有多套uv的模型(原始模型不好看还有版权问题 所以打个码)
这是处理后的效果,可以看出没打码的部分更加真实了
http://blog.csdn.net/shenmifangke
一般导出的时候可以直接将粗糙度贴图并入金属度的alpha通道里
要导出材质的话可以之际publish如下
也可以选中结果图片后在贴图窗口里直接导出图片
阅读(...) 评论()程序写累了,就来玩玩酷跑小游戏吧,嘿嘿。
雨松MOMO送你一首歌曲,嘿嘿。
Unity3D研究院之高尔夫球推杆游戏Demo(三十四)
Unity3D研究院之高尔夫球推杆游戏Demo(三十四)
围观10677次
编辑日期: 字体:
MOMO虽然要告别Unity3D开发一段时间,可是我的博客永远不会停止对技术的渴望。前两天用了两个小时帮公司做了一个简单的小DEMO,今天我把它分享出来。如下图所示,游戏的操作很简单,控制旋转的方向,保持小球朝向着改方向发射,知道小球被球杆打进洞,表示推杆完成。
我说明一下这个DEMO中使用到的一些技术难点。
游戏场景中的这支球杆模型是没有动画,为了让球杆有击打小球的动画,我们可以使用旋转球杆的中心来完成。我把球杆旋转分为两部分,第一部分是球杆从起始点向上旋转,第二部分是球杆从最高点向下旋转击球。
有一个重要的方法可以很轻易的帮我们完成旋转插值的计算。
Quaternion.Lerp()方法,参数1表示改模型其实的旋转角度,参数2表示该模型结束的旋转角度,参数3表示该模型从起始角度旋转至结束角度所使用的时间。把这个方法放在Update方法中,就好比每一帧都会计算当前模型旋转中的角度,只到它旋转结束。
<div class="crayon-num" data-line="crayon-59b9d<div class="crayon-num crayon-striped-num" data-line="crayon-59b9d<div class="crayon-num" data-line="crayon-59b9d<div class="crayon-num crayon-striped-num" data-line="crayon-59b9d
void Update(){&&&&&&&&&& transform.rotation = Quaternion.Lerp(transform.rotation,upPoint,Time.deltaTime * 2.8f);}
如此一来我们就可以使用纯代码完成球杆击球的一个完成动画。
通过按下“向左”、“向右”来调整击球的角度。
使用RotateAround()方法,让球杆始终围绕着小球在Y轴方向旋转。参数1表示围绕旋转参照点的位置(小球的位置)参数2表示围绕旋转的角度,Vector3.up就是表示Y轴旋转,参数3表示一次旋转的速度。
gan.transform.RotateAround(qiu.transform.position,Vector3.up,2 * Time.deltaTime);
然后是绘制球杆击打小球的目标方向线,也就是图中绿色半透明的线,他会始终计算小球击打的方向。其实它就是一道简单的数学题,忽略Y轴,已知平面中的一个点、一个角度、一段距离,求另一个点的位置,我的做法是这样的,100就表示距离,把线画出来即可。
<div class="crayon-num" data-line="crayon-59b9d<div class="crayon-num crayon-striped-num" data-line="crayon-59b9d<div class="crayon-num" data-line="crayon-59b9d<div class="crayon-num crayon-striped-num" data-line="crayon-59b9d<div class="crayon-num" data-line="crayon-59b9d<div class="crayon-num crayon-striped-num" data-line="crayon-59b9d<div class="crayon-num" data-line="crayon-59b9d<div class="crayon-num crayon-striped-num" data-line="crayon-59b9d
void DrawHitLine() {
hitPoint = gan.transform.localRotation * (-Vector3.forward);
hitPoint = (hitPoint.normalized *100) + qiu.transform.localPosition;
lineRenderer.SetVertexCount(2);
lineRenderer.SetPosition(1,qiu.transform.localPosition);
lineRenderer.SetPosition(0,hitPoint); }
最后是将小球打出,计算一个角度,施加一个力就可以。
<div class="crayon-num" data-line="crayon-59b9d<div class="crayon-num crayon-striped-num" data-line="crayon-59b9d
Vector3 vecsphere = gan.transform.localRotation * (-Vector3.forward);
qiu.rigidbody.AddForce(vecsphere * 5000,ForceMode.Force);
这里说一下localPosition localRotation localScale
与 Position Rotation 的区别。 在U3D中我们可以在游戏对象下面绑定子对象,加local的表示这个位置与旋转是相对父对象的位置,开发中只该对象是某对象的子对象时尽量使用 localPosition localRotation localScale 否则你会发现你的坐标非常混乱。因为如果使用Position Rotation 它和监测面板视图中的位置是不一样的,因为目前你的对象是在子对象中、自对象的坐标永远是相对父对象的坐标。
最后是这个高尔夫球游戏的DEMO,欢迎大家下载。 今天非常高兴,因为MOMO的博客备案经历了5次备案,终于通过拉,高兴,哇咔咔~
本文的源码:
本文固定链接:
转载请注明:
雨松MOMO提醒您:亲,如果您觉得本文不错,快快将这篇文章分享出去吧 。另外请点击网站顶部彩色广告或者捐赠支持本站发展,谢谢!
作者:雨松MOMO
专注移动互联网,Unity3D游戏开发
如果您愿意花10块钱请我喝一杯咖啡的话,请用手机扫描二维码即可通过支付宝直接向我捐款哦。
您可能还会对这些文章感兴趣!
Pingback 引用通告:分享给朋友:通用代码: <input id="link4" type="text" class="form_input form_input_s" value="" />复 制flash地址: 复 制html代码: <input type="text" class="form_input form_input_s" id="link3" value="" />复 制分享视频到站外获取收益&&手机扫码分享视频二维码2小时内有效Unity3D教程 手把手教做球球大作战 # 02下载至电脑本视频因版权问题,很抱歉无法提供下载扫码用手机看用或微信扫码在手机上继续观看二维码2小时内有效Unity3D教程 手把手教做球球大作战 # 02扫码用手机继续看用或微信扫码在手机上继续观看二维码2小时内有效,扫码后可分享给好友没有优酷APP?立即下载请根据您的设备选择下载版本
药品服务许可证(京)-经营-请使用者仔细阅读优酷、、Copyright(C)2017 优酷
版权所有不良信息举报电话:&>&&>&行业&>&网络游戏&>&unity3d 一个简单的足球demo
unity3d 一个简单的足球demo
上传大小:1.83MB
unity3d 一个简单的足球demounity3d 一个简单的足球demounity3d 一个简单的足球demo
综合评分:3.8(31位用户评分)
所需积分:
下载个数:198
{%username%}回复{%com_username%}{%time%}\
/*点击出现回复框*/
$(".respond_btn").on("click", function (e) {
$(this).parents(".rightLi").children(".respond_box").show();
e.stopPropagation();
$(".cancel_res").on("click", function (e) {
$(this).parents(".res_b").siblings(".res_area").val("");
$(this).parents(".respond_box").hide();
e.stopPropagation();
/*删除评论*/
$(".del_comment_c").on("click", function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_invalid/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parents(".conLi").remove();
alert(data.msg);
$(".res_btn").click(function (e) {
var q = $("#form1").serializeArray();
console.log(q);
var res_area_r = $.trim($(".res_area_r").val());
if (res_area_r == '') {
$(".res_text").css({color: "red"});
$.post("/index.php/comment/do_comment_reply/", q,
function (data) {
if (data.succ == 1) {
var $target,
evt = e || window.
$target = $(evt.target || evt.srcElement);
var $dd = $target.parents('dd');
var $wrapReply = $dd.find('.respond_box');
console.log($wrapReply);
var mess = $(".res_area_r").val();
var str = str.replace(/{%header%}/g, data.header)
.replace(/{%href%}/g, 'http://' + window.location.host + '/user/' + data.username)
.replace(/{%username%}/g, data.username)
.replace(/{%com_username%}/g, _username)
.replace(/{%time%}/g, data.time)
.replace(/{%id%}/g, data.id)
.replace(/{%mess%}/g, mess);
$dd.after(str);
$(".respond_box").hide();
$(".res_area_r").val("");
$(".res_area").val("");
$wrapReply.hide();
alert(data.msg);
}, "json");
/*删除回复*/
$(".rightLi").on("click",'.del_comment_r', function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_comment_del/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parent().parent().parent().parent().parent().remove();
$(e.target).parents('.res_list').remove()
alert(data.msg);
//填充回复
function KeyP(v) {
$(".res_area_r").val($.trim($(".res_area").val()));
评论共有20条
my unity3d version is 5.0+, have run error
能运行 不过很简陋
但是太简单了
没啥利用价值
运行没有问题,不错,适合初学者
图像有点粗糙,能跑起来
挺不错的一个小游戏,初学者有用
挺有意思的,挺好!
运行没有问题,不错,适合初学者
可以用,就是报毒了!
运行不起来,应该是我的环境太高了
审核通过送C币
10个Cocos2dx游戏源码
创建者:iamlazybone
微软文字处理方面的汇编
创建者:caozhy
JavaScript从入门到精通
创建者:jiangnan_010203
上传者其他资源上传者专辑
unity3.4.2of3破解
unity3.5破解
unity3.41破解
网络游戏服务器端编程part
网络游戏服务器端编程part
行业热门标签
VIP会员动态
前端开发重难点
17年软考最新真题及解析
物联网全栈开发专题
二十大技术领域优质资源
spring mvc+mybatis+mysql+maven+bootstrap 整合实现增删查改简单实例.zip
CSDN&VIP年卡&4000万程序员的必选
unity3d 一个简单的足球demo
会员到期时间:剩余下载个数:
请勿使用迅雷下载
积分不足!
资源所需积分
当前拥有积分
您可以选择
程序员的必选
绿色安全资源
资源所需积分
当前拥有积分
VIP年卡全年1200个资源免积分下载
请勿使用迅雷下载
你当前的下载分为234。
你还不是VIP会员
开通VIP会员权限,免积分下载
你下载资源过于频繁,请输入验证码
你下载资源过于频繁,请输入验证码
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
若举报审核通过,可奖励20下载分
被举报人:
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:}

我要回帖

更多关于 unity3d 创建球体 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信