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

服务器上的网站不能访问重庆森林百度云

服务器上的网站不能访问,重庆森林百度云,手机特效视频制作软件免费,用ps做网站首页顶部图片版本#xff1a;Unity2019.4.0f1 PackageManager下载Burst插件(1.2.3版本) 利用如下代码#xff0c;生成一个Texture3D资源#xff0c;它只能脚本生成#xff0c;是一个32*32*32的立方体#xff0c;导出路径记得改下#xff0c;不然报错。 using UnityEditor; using Uni… 版本Unity2019.4.0f1 PackageManager下载Burst插件(1.2.3版本) 利用如下代码生成一个Texture3D资源它只能脚本生成是一个32*32*32的立方体导出路径记得改下不然报错。 using UnityEditor; using UnityEngine;public class ExampleEditorScript {[MenuItem(CreateExamples/3DTexture)]static void CreateTexture3D(){// 配置纹理int size 32;TextureFormat format TextureFormat.RGBA32;TextureWrapMode wrapMode TextureWrapMode.Clamp;// 创建纹理并应用配置Texture3D texture new Texture3D(size, size, size, format, false);texture.wrapMode wrapMode;// 创建 3 维数组以存储颜色数据Color[] colors new Color[size * size * size];// 填充数组使纹理的 x、y 和 z 值映射为红色、蓝色和绿色float inverseResolution 1.0f / (size - 1.0f);for (int z 0; z size; z){int zOffset z * size * size;for (int y 0; y size; y){int yOffset y * size;for (int x 0; x size; x){colors[x yOffset zOffset] new Color(x * inverseResolution,y * inverseResolution, z * inverseResolution, 1.0f);}}}// 将颜色值复制到纹理texture.SetPixels(colors);// 将更改应用到纹理然后将更新的纹理上传到 GPUtexture.Apply();// 将纹理保存到 Unity 项目AssetDatabase.CreateAsset(texture, Assets/JobsDemo/Example3DTexture.asset);} } 场景上创建一个Cube和LineRenderer注意Line的位置要设置到(0,0,0) 如下图 摄像机保持位置(0,1,-10) 新建一个材质球挂到Cube上Shader代码如下 Shader Unlit/VolumeShader {Properties{_MainTex(Texture, 3D) white {}_Alpha(Alpha, float) 0.02_StepSize(Step Size, float) 0.01}SubShader{Tags { Queue Transparent RenderType Transparent }Blend One OneMinusSrcAlphaLOD 100Pass{CGPROGRAM#pragma vertex vert#pragma fragment frag#include UnityCG.cginc// 最大光线追踪样本数#define MAX_STEP_COUNT 128// 允许的浮点数误差#define EPSILON 0.00001fstruct appdata{float4 vertex : POSITION;};struct v2f{float4 vertex : SV_POSITION;float3 objectVertex : TEXCOORD0;float3 vectorToSurface : TEXCOORD1;};sampler3D _MainTex;float4 _MainTex_ST;float _Alpha;float _StepSize;v2f vert(appdata v){v2f o;// 对象空间中的顶点将成为光线追踪的起点o.objectVertex v.vertex;// 计算世界空间中从摄像机到顶点的矢量float3 worldVertex mul(unity_ObjectToWorld, v.vertex).xyz;o.vectorToSurface worldVertex - _WorldSpaceCameraPos;o.vertex UnityObjectToClipPos(v.vertex);return o;}float4 BlendUnder(float4 color, float4 newColor){color.rgb (1.0 - color.a) * newColor.a * newColor.rgb;color.a (1.0 - color.a) * newColor.a;return color;}fixed4 frag(v2f i) : SV_Target{// 开始在对象的正面进行光线追踪float3 rayOrigin i.objectVertex;// 使用摄像机到对象表面的矢量获取射线方向float3 rayDirection mul(unity_WorldToObject, float4(normalize(i.vectorToSurface), 1));float4 color float4(0, 0, 0, 0);float3 samplePosition rayOrigin;// 穿过对象空间进行光线追踪for (int i 0; i MAX_STEP_COUNT; i){// 仅在单位立方体边界内累积颜色if (max(abs(samplePosition.x), max(abs(samplePosition.y), abs(samplePosition.z))) 0.5f EPSILON){float4 sampledColor tex3D(_MainTex, samplePosition float3(0.5f, 0.5f, 0.5f));sampledColor.a * _Alpha;color BlendUnder(color, sampledColor);samplePosition rayDirection * _StepSize;}}return color;}ENDCG}} } 新建一个空物体Jobs挂载脚本JobsTest.cs using System; using System.Collections; using System.Collections.Generic; using Unity.Burst; using Unity.Collections; using Unity.Collections.LowLevel.Unsafe; using Unity.Jobs; using UnityEngine;public class JobsTest : MonoBehaviour {private int width, height, depth;public LineRenderer lineRenderer;public GameObject cubeGo;private Transform cubeTrans;private Texture3D _Tex3D;private Color[] colors;private Color[] cacheColor;NativeArrayColor nativeColors;NativeArrayColorData nativeColorDatas;MyJob myJob new MyJob();private void Awake(){Material mat cubeGo.GetComponentMeshRenderer().sharedMaterial;_Tex3D (Texture3D)mat.GetTexture(_MainTex);width _Tex3D.width;height _Tex3D.height;depth _Tex3D.depth;colors _Tex3D.GetPixels();cacheColor _Tex3D.GetPixels();cubeTrans cubeGo.transform;Debug.Log(colors.Length);}private void OnEnable(){lineRenderer.positionCount 1;_Tex3D.SetPixels(cacheColor);_Tex3D.Apply();nativeColors new NativeArrayColor(colors.Length, Allocator.Persistent);nativeColorDatas new NativeArrayColorData(colors.Length, Allocator.Persistent);myJob.width width;myJob.height height;myJob.depth depth;myJob.colors nativeColors;myJob.colorDatas nativeColorDatas;for (int z 0; z depth; z){for (int y 0; y height; y){for (int x 0; x width; x){int i z * (width * height) y * width x;nativeColors[i] colors[i];ColorData colorData new ColorData();colorData.x x;colorData.y y;colorData.z z;nativeColorDatas[i] colorData;}}}}private void OnDisable(){_Tex3D.SetPixels(cacheColor);_Tex3D.Apply();nativeColorDatas.Dispose();nativeColors.Dispose();}// Update is called once per framevoid Update(){if (Input.GetMouseButtonDown(0)){Vector3 screenPos Input.mousePosition;screenPos.z 1;lineRenderer.SetPosition(lineRenderer.positionCount - 1, Camera.main.ScreenToWorldPoint(screenPos));if (lineRenderer.positionCount 3){Calculate();lineRenderer.positionCount 1;}else{lineRenderer.positionCount;}}else{if (lineRenderer.positionCount 1){Vector3 screenPos Input.mousePosition;screenPos.z 1;lineRenderer.SetPosition(lineRenderer.positionCount - 1, Camera.main.ScreenToWorldPoint(screenPos));}}}private void Calculate(){float startTime Time.realtimeSinceStartup;//模型坐标myJob.p1 cubeTrans.InverseTransformPoint(lineRenderer.GetPosition(0));myJob.p2 cubeTrans.InverseTransformPoint(lineRenderer.GetPosition(1));myJob.p3 cubeTrans.InverseTransformPoint(lineRenderer.GetPosition(2));myJob.object2World cubeTrans.localToWorldMatrix;myJob.world2Camera Camera.main.worldToCameraMatrix;myJob.camera2Clip Camera.main.projectionMatrix;JobHandle jobHandle default;jobHandle myJob.ScheduleParallel(colors.Length, 64, jobHandle);jobHandle.Complete();_Tex3D.SetPixels(nativeColors.ToArray());_Tex3D.Apply();Debug.Log((Time.realtimeSinceStartup - startTime) * 1000 ms);} }[BurstCompile] public struct MyJob : IJobFor {//[NativeDisableContainerSafetyRestriction]public NativeArrayColor colors;//[NativeDisableContainerSafetyRestriction] //发现jobs日志有 out of length报错可用此特性忽略public NativeArrayColorData colorDatas;public Vector3 p1, p2, p3;public int width, height, depth;public Matrix4x4 object2World;public Matrix4x4 world2Camera;public Matrix4x4 camera2Clip;public void Execute(int index){if (colors[index] Color.clear){return;}Vector3 localPoint new Vector3(colorDatas[index].x / (width * 1.0f), colorDatas[index].y / (height * 1.0f), colorDatas[index].z / (depth * 1.0f)) - (Vector3.one * 0.5f);Vector2 screenPoint Local2Screen(localPoint);Vector2 screenP1 Local2Screen(p1);Vector2 screenP2 Local2Screen(p2);Vector2 screenP3 Local2Screen(p3);bool isInside IsPointInTriangle(screenPoint, screenP1, screenP2, screenP3);if (isInside){colors[index] Color.clear;}}//2个二维向量行列式值可理解为求出了2个二维向量构成的面的法线z值private float Cross(Vector2 a, Vector2 b, Vector2 p){return (b.x - a.x) * (p.y - a.y) - (b.y - a.y) * (p.x - a.x);}private bool IsPointInTriangle(Vector2 p, Vector2 a, Vector2 b, Vector2 c){float signOfTrig Cross(a, b, c);float signOfAB Cross(a, b, p);float signOfCA Cross(c, a, p);float signOfBC Cross(b, c, p);bool d1 (signOfAB * signOfTrig 0);bool d2 (signOfCA * signOfTrig 0);bool d3 (signOfBC * signOfTrig 0);return d1 d2 d3;//方法2://Vector3 pa a - p;//Vector3 pb b - p;//Vector3 pc c - p;//分别进行3次求其中2个向量构成的三角面的法线;//Vector3 pab Vector3.Cross(pa, pb);//Vector3 pbc Vector3.Cross(pb, pc);//Vector3 pca Vector3.Cross(pc, pa);//分别进行3次求其中2个法线构成的点积(夹角)0代表两条法线方向相同//float z1 Vector3.Dot(pab, pbc);//float z2 Vector3.Dot(pab, pca);//float z3 Vector3.Dot(pbc, pca);//若3条法线之间的朝向都是相同的说明p点在a,b,c三角形内//return z1 0 z2 0 z3 0; }private Vector2 Local2Screen(Vector3 localPos){Vector3 worldPos object2World.MultiplyPoint(localPos);Vector3 cameraPos world2Camera.MultiplyPoint(worldPos);Vector4 clipPos camera2Clip * new Vector4(cameraPos.x, cameraPos.y, cameraPos.z, 1.0f);if (clipPos.w ! 0){clipPos clipPos / clipPos.w;}float screenX (clipPos.x 1) / 2f * 1920f;float screenY (clipPos.y 1) / 2f * 1080f;return new Vector2(screenX, screenY);} } public struct ColorData {public float x, y, z; } 项目资源 耗时如下
http://www.hkea.cn/news/14316179/

相关文章:

  • 注册消防工程师seo实战培训课程
  • 网站怎么做伪静态上海网站设计推荐刻
  • 成都网站建设优秀公司建设和交通局网站
  • 建设网站公司怎么分工做家具城网站的意义
  • 临沂网网站建设绘制网站结构图
  • 网站做404公司设计网站多少钱
  • wordpress 中英文站点青浦区网站建设
  • 做壁纸的网站素材网站php程序源码
  • 徐州网站建设方案推广想要接网站业务如何做
  • 2008 iis 添加网站原生h5网站怎么做
  • 阿里云网站建设方案书沈阳建信建设工程有限公司位置
  • 福利WordPress网站自动采集源码黄冈网站设计推广哪家好
  • 玉山县建设局的网站wordpress大主题上传
  • 浙江省住房和城乡建设局网站网站开发飞沐
  • a032网站模版网页设计模板代码网站
  • vpn免流网站建设网站开发最严重的问题
  • 知名设计网站WordPress推送百家号
  • 怎么利用婚庆网站做营销世界500强企业有哪些
  • 网站建设的财务计划书门户app网站建设多少钱
  • 商务局网站溪江农贸市场建设有了网站怎么做app
  • 往网站上做新东西需要什么威海哪家网站做的好
  • 国内一家做国外酒店团购的网站有想做企业网站建设
  • 网站托管 域名申请一个域名可以建设一个网站吗
  • 网站建设分期进行怎么入账上海装修公司咨询
  • 知乎做笔记的网站管理咨询的主体包括哪些
  • 网站开发职业生涯规划书wordpress开启伪静态找不到页面
  • 如何建立网站眼镜网站怎么做
  • wordpress 建网站 vpn哔哩哔哩网页版下载视频
  • 跨境网站入口苏州网站建设n苏州网站建设公司
  • 网站项目设计wordpress 收费版