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

网站建设388安康网站制作公司

网站建设388,安康网站制作公司,网站备案购买,建设诚信网站材质还是要开启enable instance#xff0c;这是上一次的写法 https://dbbh666.blog.csdn.net/article/details/136644181 最近发现更适合我个人的习惯的写法 就是代码控制这个整个过程 C#代码是这样的#xff0c;获取一个mesh#xff0c;获取每个mesh的transform#xff0c…材质还是要开启enable instance这是上一次的写法 https://dbbh666.blog.csdn.net/article/details/136644181 最近发现更适合我个人的习惯的写法 就是代码控制这个整个过程 C#代码是这样的获取一个mesh获取每个mesh的transform核心就完了我这里是场景里的cube的mesh取来直接使用 using UnityEngine;public class DrawMeshInstancedDemo : MonoBehaviour {// Material to use for drawing the meshes.public Material material;private Matrix4x4[] matrices;//private MaterialPropertyBlock block;private Mesh mesh;private void Setup(){float range 100.0f;int population 1023;//Mesh mesh CreateQuad();GameObject gameObject GameObject.Find(Cube);MeshFilter mf gameObject.GetComponentMeshFilter();this.mesh mf.mesh;matrices new Matrix4x4[population];//Vector4[] colors new Vector4[population];//block new MaterialPropertyBlock();for (int i 0; i population; i){Vector3 position new Vector3(Random.Range(-range, range), Random.Range(-range, range), Random.Range(-range, range));Quaternion rotation Quaternion.Euler(Random.Range(-180, 180), Random.Range(-180, 180), Random.Range(-180, 180));Vector3 scale Vector3.one;matrices[i] Matrix4x4.TRS(position, rotation, scale); }// Custom shader needed to read these!!//block.SetVectorArray(_Colors, colors);}private void Start(){Setup();}private void Update(){// Draw a bunch of meshes each frame.Graphics.DrawMeshInstanced(mesh, 0, material, matrices, 1023 /*block*/);} }然后就是shader有几点要注意的 pragma这里有个#pragma multi_compile_instancing 宏有这几个 UNITY_VERTEX_INPUT_INSTANCE_ID UNITY_SETUP_INSTANCE_ID(i) #ifdef UNITY_INSTANCING_ENABLED //o.color _Colors[instanceID]; #endif 这几个宏都要放在对的位置才能获取正确的变量 Shader “Unlit/instance” { Properties { _MainTex (“Texture”, 2D) “white” {} } SubShader { Tags { “RenderType”“Opaque” } LOD 100 Pass{CGPROGRAM#pragma vertex vert#pragma fragment frag#pragma multi_compile_instancing// make fog work//#pragma multi_compile_fog#include UnityCG.cgincstruct appdata_t{float4 vertex : POSITION;float2 uv : TEXCOORD0;UNITY_VERTEX_INPUT_INSTANCE_ID};struct v2f{float2 uv : TEXCOORD0;//UNITY_FOG_COORDS(1)float4 vertex : SV_POSITION;};// float4 _Colors[1023]; // Max instanced batch size.sampler2D _MainTex;float4 _MainTex_ST;v2f vert(appdata_t i, uint instanceID: SV_InstanceID) {// Allow instancing.UNITY_SETUP_INSTANCE_ID(i);v2f o;//UNITY_TRANSFER_FOG(o,o.vertex);o.vertex UnityObjectToClipPos(i.vertex);o.uv i.uv;// If instancing on (it should be) assign per-instance color.#ifdef UNITY_INSTANCING_ENABLED //o.color _Colors[instanceID];#endifreturn o;}fixed4 frag (v2f i) : SV_Target{// sample the texturefixed4 col tex2D(_MainTex, i.uv);// apply fog// UNITY_APPLY_FOG(i.fogCoord, col);col.gbfixed2(0.2,0.2);return col;}ENDCG} }} 这样创建一个空对象把C#脚本挂上去即可 看效果最中间那个是原始cube其他的都是instance搞出来的 需要注意的地方是1023这个事情可能用纹理可以绕过去
http://www.zqtcl.cn/news/915607/

相关文章:

  • 设计某网站的登录和注册程序凡科建站添加文章
  • wordpress 批量打印wordpress 数据库优化
  • 购物网站开发设计类图网络架构指什么
  • 学校网站建设方法wordpress 调用用户名
  • 深圳创建网站公司哈尔滨全员核酸检测
  • 网站开发实施计划宠物网站 html模板
  • 在线生成手机网站商城网站平台怎么做
  • 深圳专业企业网站制作哪家好写作网站新手
  • 福建泉州曾明军的网站桥梁建设期刊的投稿网站
  • 国内设计网站公司wordpress电视主题下载
  • 自贡网站开发河南省建设网站首页
  • 昆明网站推广优化服务器代理
  • wordpress 网站统计插件福建省建设工程职业注册网站
  • 手机移动端网站是什么上海网站设计服务商
  • 多语言网站建设推广孝感门户网
  • 外贸soho 网站建设旅游电子商务网站建设调查问卷
  • 北京专业制作网站seo优化技术教程
  • 网站建设最低多少钱珠海在线网站制作公司
  • 网站建设完成之后要索取哪些医疗网站建设服务
  • 长沙招聘网站有哪些深圳seo论坛
  • 网站如何做网络推广山西住房建设厅官方网站
  • 优化排名推广技术网站平面设计创意
  • 山西网站建设哪家有tv域名的网站
  • 个人博客网站怎么赚钱公司招聘一个网站建设来做推广
  • 功能型网站有哪些中国门户网站有哪些
  • 网站制作教程步骤软件公司怎么赚钱
  • 看世界杯网址网站更新seo
  • 深圳网站做的好的公司商洛做网站电话
  • 环保部网站官网建设项目审批做网站推广赚钱吗
  • 北仑建设局网站东莞市seo网络推广价格