当前位置: 首页 > news >正文

有域名了 怎么做网站免费下优化大师

有域名了 怎么做网站,免费下优化大师,广州注册公司无地址怎么办,广告设计公司经营PBD方法 首先是每个质点的力的分析,不考虑碰撞和弹簧弹力的情况下,每个质点受重力的影响,所以需要对每个质点进行速度和位置的重力影响更新。 float t 0.0333f; float damping 0.99f; int[] E; float[] L; Vector3[] V; Vector3 gra…

PBD方法

首先是每个质点的力的分析,不考虑碰撞和弹簧弹力的情况下,每个质点受重力的影响,所以需要对每个质点进行速度和位置的重力影响更新。

float 		t= 0.0333f;
float		damping= 0.99f;
int[] 		E;
float[] 	L;
Vector3[] 	V;
Vector3 gravity = new Vector3(0.0f, -9.8f, 0.0f);
......
for(int i=0; i<X.Length; i++)
{if(i==0 || i==20)	continue;V[i] = V[i] + gravity * t;V[i] *= damping;X[i] = X[i] + V[i] * t;//Initial Setup//...
}

思考一个问题,现实生活中布料的每个质点在拉扯变大以后,会越来越难以拉扯,基于胡可定律的弹簧模型中需要增大弹性系数k来模拟这种现象,但这会造成显式积分和隐式积分都出现问题,增大了模拟计算量。基于约束的方法被提出的动机就是想要解决这个问题。也就是PBD

使用Jacobi的方式对质点进行约束位置更新。然后通过PBD的算法流程对位置和速度进行更新。

	void Strain_Limiting(){Mesh mesh = GetComponent<MeshFilter> ().mesh;Vector3[] vertices = mesh.vertices;Vector3[] vertices_new = new Vector3[vertices.Length];int[] n = new int[vertices.Length];for(int i = 0; i < vertices.Length; i++){vertices_new[i] = new Vector3(0.0f, 0.0f, 0.0f);n[i] = 0;}for(int e = 0; e < L.Length; e++)//注意是消重的{int a = E[e * 2 + 0];int b = E[e * 2 + 1];Vector3 a_b = vertices[a] - vertices[b];float halfDistance = (a_b.magnitude - L[e])*0.5f;Vector3 pointMove = halfDistance * a_b.normalized;vertices_new[a] = vertices_new[a] + vertices[a] - pointMove;vertices_new[b] = vertices_new[b] + vertices[b] + pointMove;n[a]++;n[b]++;}for(int i = 0; i < vertices.Length; i++){if (i == 0 || i == 20) continue;V[i] = V[i] + ((vertices_new[i] + 0.2f * vertices[i]) / (n[i] + 0.2f) - vertices[i]) / t;vertices[i] = (vertices_new[i] + 0.2f * vertices[i]) / (n[i] + 0.2f);}//Apply PBD here.//...mesh.vertices = vertices;}

布料效果

球的撞击

在之前的课程中,求的是刚体对碰撞体进行撞击,所以最后要进行约束回来,但是这里不需要,这是流体。

这里计算碰撞位移是在PBD以后,才计算是否发生碰撞以及碰撞后的速度和位移变换。(这些都算在一个帧内进行更新)

	void Collision_Handling(){Mesh mesh = GetComponent<MeshFilter> ().mesh;Vector3[] X = mesh.vertices;Vector3 spherePosition = sphere.transform.position;for(int i = 0; i < X.Length; i++){if (i == 0 || i == 20) continue;if ((X[i] - spherePosition).magnitude > r){continue;}//发生碰撞,得到碰撞点Vector3 collosionPoint = r * (X[i] - spherePosition).normalized + spherePosition;Vector3 normal = (collosionPoint - spherePosition).normalized;float jud = Vector3.Dot(V[i], normal);/*V[i] = V[i]+ (collosionPoint - X[i]) / t;X[i] = collosionPoint;*/Vector3 v_N = jud * normal;Vector3 v_T = V[i] - v_N;//作业这里的意思是碰撞以后,位移到球体表面v_N = v_N + (collosionPoint - X[i]) / t;X[i] = collosionPoint;V[i] = v_N + v_T;//忽略摩擦}//For every vertex, detect collision and apply impulse if needed.//...mesh.vertices = X;}

效果

http://www.mmbaike.com/news/22551.html

相关文章:

  • 什么网站做推广google海外推广
  • 网站文明建设工程包括铁岭网站seo
  • 小程序制作推广天津seo网络营销
  • 返利网 网站开发哈尔滨seo服务
  • 湖南建设网站官网西安seo网站关键词
  • 龙岩kk网手机版电脑优化大师
  • 衡水企业做网站今日nba战况
  • 做企业邮箱的网站链接检测工具
  • 商城网站建设第一章整站优化
  • 公司网站怎么能被百度收录创建自己的网页
  • 上海建设交通委网站网店推广联盟
  • 贵阳酒店网站建设企业文化是什么
  • 做蛋糕视频教学网站国产长尾关键词拘挖掘
  • 班级网站 程序百度浏览器网页版
  • 北京专业网站建设网站百度引擎搜索网址
  • div css 网站实例如何去推广一个app
  • 建站百度推广
  • 做网站 java 怎么样长沙网站外包公司
  • 怎样用模板做网站茂名seo快速排名外包
  • 滨州做网站的电话企业线上培训平台有哪些
  • 泰安做网站哪里好cms建站
  • 网站建设中的注册和登录页面热狗seo外包
  • 杭州网站建设费用多少钱外链网盘源码
  • 兼职做ps网站b站怎么推广自己的视频
  • 上海网站设计与开发公司百度引擎入口
  • 官方网站建设银行年利息是多少钱百度招聘网最新招聘信息
  • 网站建设中的板块名称专业黑帽seo
  • 注册了自己的网站关键词全网搜索
  • 免费手机版网站建设竞价托管 微竞价
  • 长春做网站建设的公司竞价排名服务