自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(51)
  • 收藏
  • 关注

原创 Ubuntu下使用Anaconda搭建Django(Windows Mac通用)

1.Anaconda是什么?Anaconda拥有超过1400个软件包。其中包含Conda和虚拟环境管理,它们都被包含在Anaconda Navigator中,因此用户无需去了解独立安装每个库。用户可以使用已经包含在Anaconda中的命令conda install或者pip install从Anaconda仓库中安装开源软件包。Pip提供了Conda的大部分功能,并且大多数情况下两个可以同时使用...

2020-03-09 00:26:52 1046

原创 [5分钟学会Katana Katana中文教程]—摘要

个人摘要,视频教程网址:https://www.bilibili.com/video/BV12b411J7Ng?p=12.Katana的工作流程与节点基础知识2.1 鼠标点击选中任意窗口,敲击空格键,窗口最大化,再点空格最小化;2.2 鼠标中键平移窗口,滚轮缩放窗口,按住ALT+鼠标左/右也可平移/缩放;2.3 鼠标点击每个节点右侧的绿色按钮—为属性面板(E),左侧紫色按钮—为场景按钮(V)(需要截图),双击节点同时显示两个按钮;2.4 选中模型窗口按住F,将模型最大化;3.构建场景3.1 选

2021-11-24 16:26:21 770

原创 HTC Tracker 绑定固定的设备ID(写代码版本)

通过id序列号进行绑定写死网上看了很多,用其他的太麻烦,不如直接写代码;1.找到对应的脚本SteamVR_TrackedObject2.引入using Valve.VR;3.打印你想绑定设备序列号void ListDevices(){ for (int i = 0; i < SteamVR.connected.Length; ++i) { ETrackedPropertyError error = new ETrackedPropertyError

2021-10-26 12:00:15 623

原创 unity打包webgl局限及优化建议

首先要知道编译流程一.大致编译流程c# -> 通过IL2CPP技术转换成c++ -> 使用 Emscripten编译器进行编译将脚本转换为JavaScript(但不是普通的 JS,而是一种叫做 asm.js的 JavaScript 变体)二.Unity打包webgl局限1. 不支持多线程JS为单线程,所以代码中避免使用C#的多线程(托管的 dll中使用线程也不支持),实质上不支持System.Threading命名空间中的任何内容;可以用协程。2. Socket限制由于安全限制,S

2021-07-25 13:10:23 5084 4

原创 Unity-问题之1.隐藏UI,之后在特定的时候再显示 2.找到隐藏的UI但使用其脚本 3.隐藏UI方法总结大全

1.隐藏UI,之后在特定的时候再显示问题1描述:在项目中需要在—开始将一个UGUI隐藏,之后在特定的时候再显示。本来想的办法是在需要显示的时候调用GameObject.Find()找到这个UI并设置active,但发现找出来的为null,经查阅资料发现GameObject.Find)只能find没有被隐藏的游戏对象,而我们的UI对象一开始就隐藏了,所以使用GameObject.Find()找到的为null,解决办法:使用GameObject.Find()找这个UI的父亲或随便祖先(只要他的上级

2021-07-22 16:39:25 2725 1

转载 Unity UGUI CanvasGroup组件的详解

对于CanvasGroup组件,我们一定要引起高度重视,它很好用的呢。首先创建一个buttonBig,它很大♂,我将它的image里面的颜色alpha调至一半,颜色稍红。添加CanvasGroup组件然后创建两个小的button。他们都是默认的样子。之后调整大button,使大Button在小Button的上面。然后以大Button为父对象,创建一些UGUI的其他物件,像slider,toggle等。好现在搭建完成,我们开始试验CanvasGroupAlpha:控制父对象与全部子对象的透明度。

2021-07-22 16:31:07 537

原创 unity C#中使用Newtonsoft.Json进行字符串的序列化和反序列化简易教程

一.背景介绍1.什么是jsonJSON (JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式。它基于 ECMAScript (w3c制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率,几乎所有编程语言都有解析JSON的库。——百度百科推荐一个在线解析网站;https://www.json.cn/

2021-07-22 15:45:29 2350 4

原创 C# unity (发布到安卓端中使用)解析json字符串—使用微软官方的包Newtonsoft.Json

最近做项目,需要接受安卓端输出的json到本地解析使用,整个工程需要发布到安卓端使用,所以记录下如何在安卓端使用并解析json;使用工具: Newtonsoft.Json,是.Net中开源的Json序列化和反序列化工具,官方地址:http://www.newtonsoft.com/json。使用方法:1.VS端:Nuget包管理=>添加 Newtonsoft.Json脚本里使用:using Newtonsoft.Json;2.Unity端:2.1 打开playersettings,切换

2021-07-22 10:40:42 807 2

原创 常用git命令总结

git无非就是本地仓库和远端仓库的映射关系;红色代表从远端仓库流向本地;绿色代表从本地仓库流入远端仓库;很好的几个网站:图解gitgit - 简明指南git廖雪锋

2021-07-21 17:10:44 99

转载 Unity中的Invoke

MonoBehaviour.Invoke 延迟调用方法签名: void Invoke(string methodName, float time);在time秒后,延迟调用方法methodName。Invoke() 方法是 Unity3D 的一种委托机制如: Invoke(“SendMsg”, 5); 它的意思是:5 秒之后调用 SendMsg() 方法;使用 Invoke() 方法需要注意 3点:1 :它应该在 脚本的生命周期里的(Start、Update、OnGUI、FixedUpdat

2021-07-09 20:39:54 1361

原创 逐顶点光照 逐像素光照 差异对比

逐顶点光照(Gouraud着色法)先计算,再插值,控制精度为triangle;在vertex阶段分别计算每个顶点的颜色值,在pixel阶段再通过双线性插值计算三角形区域中其它像素的颜色。优点:1.当处理高精度多边形模型时,由于每个多边形所覆盖的区域很小,因此插值之后每个像素的误差也很小,所以逐顶点光照可以工作的很好;2.如果三角形所覆盖的像素数量大于顶点数量,其效率相对于pixel较高;缺点:1.若顶点过多,效率慢;2.处理某些跨度较大的多边形(比如:低精度模型,弧度较大的模型),由于跨度较

2021-06-10 10:21:21 952

原创 Unity-汽车仿真-1.车库UI菜单滑动功能(利用iTween)

1.实现效果展示1.1功能描述点击SHOW,菜单滑出;点击HIDE,菜单隐藏;2.实现原理概述利用动画库iTween的void MoveTo(GameObject target, Vector3 position, float time),实现动画效果,创建两个状态,分别用于记录SHOW状态的位置,HIDE状态的位置。3.具体步骤3.1 先把原始菜单拖到视图左边3.2 创建两个状态,分别用于记录SHOW状态的位置,HIDE状态的位置SHOW:HIDE:3.3 几个对象创建Ga

2021-06-06 16:29:44 1925 4

原创 Three.js地球开发—3D经纬度等比地图,3D飞行航线最终效果

大致原理:一. 3D经纬度等比地图思路:通过读取解析json格式存储的世界地图坐标信息,实现3D球面的地图经纬度等比映射,基于此还可以进行更多的开发。二. D动态航线思路:2.1 先绘制二维XOY平面绘制关于Y轴对称的飞行圆弧轨迹线借助Three.js的ArcCurve创建圆弧曲线,绘制二维XOY平面绘制关于Y轴对称的飞行圆弧轨迹线;2.2 三维空间中绘制任意两点的飞行圆弧轨迹线在三维空间中绘制任意两点的飞行圆弧轨迹线,借助之前在XOY平面的绘制的关于Y轴对称的轨迹线,通过一系列旋转得到任意三

2021-05-11 00:03:19 2383 3

原创 Three.js地球开发—5.国家边界线和国家轮廓Mesh进行组合

先看最终效果图:实现原理:创建一个球体几何对象SphereBufferGeometry,并设置材质material的map属性为之前保存渲染生成国家轮廓Mesh贴图;通过把边界线和SphereBufferGeometry构建的几何体添加进Group达到组合的目的。核心代码如下图所示:...

2021-05-10 21:21:08 758

原创 Three.js地球开发—4.Three.js渲染场景保存成贴图

保存Three.js canvas画布上的信息,设置preserveDrawingBuffer为true,创建一个超链接元素,用来下载保存数据的文件,通过超链接herf属性,设置要保存到文件中的数据。以此实现保存渲染生成国家轮廓Mesh的贴图。核心代码如下图所示:此目的是为了把上文的(Three.js地球开发—6.读取坐标数据渲染生成国家轮廓Mesh)渲染结果保存成纹理贴图,方便对后期的三维地球进行贴图操作;...

2021-05-10 21:00:37 611

原创 Three.js地球开发—3.读取坐标数据渲染生成国家轮廓Mesh

基于Three.js中的ShapeBufferGeometry构建一个几何体,传入顶点数据,渲染生成国家边界线;其中顶点数据由如下解析而来: 世界地图的坐标信息以.json格式存储,每个国家的轮廓以经纬度坐标存储;循环遍历读取每个国家的数据并转换成二维向量格式;其流程图如下:核心代码如下图所示:最终效果:...

2021-05-10 20:56:32 599

原创 Three.js地球开发—2.读取JSON坐标数据渲染生成国家边界线

1.国家坐标数据集介绍JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于大众书写和阅读,直观性强;同时也易于机器生成和解析。[18]全球各个国家的边界信息,以JSON格式文件进行存储。代码格式如图所示:2.读取坐标数据渲染生成国家边界线基于Three.js中的BufferGeometry构建一个几何体,传入顶点数据,渲染生成国家边界线;其中顶点数据由如下解析而来: 世界地图的坐标信息以.json格式存储,每个国家的轮廓以经纬度坐标存储;循环遍历读取每

2021-05-10 20:50:04 1351 2

原创 WebGL—gl_Position gl_FragCoord gl_PointCoord 区别

gl_Position,gl_FragCoord,gl_PointCoord分别描述渲染管线中的顶点,片元,点域图元(点精灵/PointSprite)光栅化后的片元在各自坐标系中的大小;可以借助上图区分记忆。区别:gl_Position:1.gl_Position描述的是顶点在世界坐标系中的坐标;2.是绝对大小;gl_FragCoord:1.gl_FragCoord描述的是片元在以Canvas画布窗口坐标系统中的坐标;2.是绝对大小;3.单位为像素;gl_PointCoord:1.gl.

2021-05-06 14:07:27 2068 1

转载 WebGL—点精灵PointSprite详解: 纹理映射,旋转,缩放,移动

第一,什么是点精灵openGL的图形由顶点构成,以后利用顶点进行纹理的映射。点精灵就是,一个顶点被当作一个精灵来处理。特别之处就是,一个顶点也可进行纹理贴出。例如,原来是个顶点构成的一个矩形,现在一个顶点就可以完成了。瞬间我们就可以想想,粒子效果,那些云雾水流火花什么的用了点精灵,就可以瞬间减少3个顶点的计算,glDrawArrays使用GL_POINT就可以了,完全也不需要什么顶点索引了。这是非常诱人的效率。第二,点精灵的局限一个顶点缩放都必须是矩形。并且大小的最大最小值是有范围的,每个openGL

2021-05-06 13:12:02 776

原创 WebGL— FrameBuffer,RenderBuffer,Texture区别

**Color Attachment:**存储的是纹理图片颜色值,实质上纹理图片颜色值属于颜色附着点的一种**Depth Attachment:**指向的是深度缓冲区和颜色缓冲区**Stencil Attachment:**指向的是模版缓冲区**RenderBuffer Objects :**渲染缓冲区对象,无论是纹理、图片、颜色、深度缓冲区、模版缓冲区都存在这个对象FrameBuffer 上的附着点其实相当于内存地址,它并没有存储实质的内容,只是三个附着点或三个内存地址在FrameBuffer..

2021-05-03 23:47:52 2626

原创 WebGL—实现使用FBO离屏渲染(亦同拷贝纹理)off-screen rendering的两种方式

1.离屏渲染使用场景:1.游戏中的小地图;2.画中画场景;3.游戏中观战模式的多场景场合;4.镜像场景——比如汽车游戏当中的倒车镜,采用的就是离屏渲染技术,在倒车镜上安装一个摄像机,把摄像机渲染的数据保存到FBO(Frame Buffer Object帧缓冲区),再从FBO提取生成纹理进行贴图到倒车镜;2.与实时渲染的优缺点比较:离屏渲染:1.在变化的场景下,因为离屏渲染需要创建一个新的缓冲区,且需要多次切换上下文环境,所以代价很高;2.在稳定的场景下,离屏渲染可以采用一张纹理进行渲染,所以

2021-05-03 23:30:36 1834 3

原创 渲染管线之深度测试与α融合—如何实现同时绘制不透明物体和透明物体

上图为OpenGL ES2.0渲染管线,要想深入理解深度测试和α融合需要明确几个概念;**片元的深度值Z:**片元的深度值Z反应的是一个片元距离观察位置的远近,两个顶点之间的片元深度值Z来源与两个顶点z坐标值的插值计算,所有片元的深度值Z都存储在帧缓存的深度缓冲区中。**深度测试单元:**WebGL图形系统默认沿着Z轴正方向观察,若开启渲染管线中的深度测试单元,所有的片元会经过该功能单元的逐片元测试,通过比较片元深度值Z, 同一个屏幕坐标位置的所有片元离观察点远的会被舍弃,只保留一个离眼睛近的片元,把.

2021-05-02 10:46:03 293

原创 Three.js地球开发—7.three.js波动光圈特效

先看最终要实现的效果:需求:想实现一种波动光圈的特效—中间颜色深,距离中间越远颜色越浅,呈现动态的,颜色逐渐变浅;纹理素材:思路:颜色渐变的实现:既然说了颜色是逐渐变浅的,那么原始的贴图肯定是透明度逐渐降低,由于之前本身的纹理透明度是逐渐降低的,所以可以在three.js里面通过改变材质的透明度.material.opacity实现渐变的效果。动感的实现:通过不断的改变纹理大小.scale.set实现;为了体现规则的周期性变化,所以缩放大小,和透明度大小到了一定程度要回复初始值,并且放在

2021-03-22 13:15:20 3504 15

原创 Three.js地球开发—3.three.js光柱特效

思路:方案1利用两个光柱进行贴图,两两垂直成九十度。depthWrite: false,注意把深度影响关了,官方解释:Whether rendering this material has any effect on the depth buffer. Default is true..depthWrite : Boolean:When drawing 2D overlays it can be useful to disable the depth writing in order to lay

2021-03-21 19:59:50 3189 9

原创 Three.js地球开发—6.三维球面上某点进行贴图标注

**需求:**在三维地球上某点进行贴图,并且任意角度都可以观察到。发生场景:设想的是直接用贴图在某点贴上去,可发现旋转视角并不能任意方向都观察到,查了下资料才想起来three.js的贴图默认贴在xoy平面,即使开了双面可见,视线总有看不见的(贴图是二维平面,而不是三维的)。解决办法:保证贴图与球面要进行贴图的某点相切,这样各个视角就看得见了。首先要知道相切的概念:一看图就懂,不解释了。然而通常我们都是在二维平面中去了解他们,当涉及到三维开发的时候,通常的思路是:计算两个面的法向量,若两个法向量平

2021-03-21 17:05:05 1307

原创 Three.js地球开发—1.经纬度转球面坐标

经纬度转Three.js球面坐标关于经纬度: 横着的为纬度,竖着的为经度;首先要搞清楚定义,大概就是与地心的夹角…,放张照片就懂了。原理: 最好的方法就是从两个剖面去理解,刚好一个为纬度,一个为经度的定义角,更直观一点。地球半径为R,存在一点A,A的经纬度是(lon,lat)(弧度值),在Three.js坐标中A的坐标是(x,y,z)。1.经度转x坐标利用勾股定理,x=R*sin(维度)...

2021-03-07 10:00:50 3325

原创 Three.js自适应窗口变化渲染

发生场景:当窗口大小发生变化时,会出现局部空白区域。解决方法:重新获取浏览器窗口新的宽高尺寸,然后通过新的宽高尺寸更新相机Camera和渲染器WebGLRenderer的参数。要注意一下,Three.js自适应渲染不一定就是窗口变化,本质上还是你要渲染的区域宽高尺寸变化了;更进一步变化是视图矩阵.matrixWorldInverse和投影矩阵.projectionMatrix的变化。具体办法:重新设置相机对象和渲染器对象的参数,不需要在渲染函数render中更新,通过窗口事件window.onresi

2021-03-03 13:11:14 2263

转载 Pbr和一般光照模型的区别

Pbr和一般光照模型的区别pbr (physically based rendering) ,基于物理的渲染。首先明确一点,物体有颜色是因为那些没有被物体吸收的光线(表现为物体的颜色)射入你的眼睛,你才感知到了颜色。从光照模型的角度来说,射入你眼睛的有两种光,一种是直接的反射光(表现为光本来的颜色),一种是折射进入物体后又散射出来的所谓漫反射光(即被吸收过了的光,也就是贴图的颜色)pbr和原始的blinn-phong的最大区别就是,考虑到了光照的能量守恒,且 基于给定粗糙值的表面(片元),对于光的反射

2021-03-03 09:26:14 1275

原创 GitHub下载太慢?—解决办法(不用改host,不用国外服务器,纯小白操作)

方法一:注册(支持GitHub账号一键登录,很方便)国产github—码云,然后从github导入进去(一键导入),再在码云上面下面,速度很快~~1.点击加号2.这里填你要下的仓库的地址3.再下载网速很快了...

2020-03-16 19:09:26 861

转载 请确保已安装Microsoft SQL Server Compact 3.5,并且没有其他应 用程序正在访问文件。如果问题仍然存在,请删除文件并重新打开解 决方案。

请确保已安装Microsoft SQL Server Compact 3.5,并且没有其他应 用程序正在访问文件。如果问题仍然存在,请删除文件并重新打开解 决方案。发生场景:前几天卸之前装的SQL一个老版本的数据库,删注册表的的时候不小心把VS自带的SQL给删除了,导致每次打开MFC都弹出那堆话, 并且类试图里什么也不显示。解决办法:vs2010安装光盘,搜索 SSCERuntime_x86-...

2020-03-10 11:23:42 3478 1

原创 You have 14 unapplied migration(s). Your project may not work properly until you apply the migration

You have 14 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.Run ‘python manage.py migrate’ to apply them.创建d...

2020-03-09 11:53:52 1330

原创 Ubuntu中使用Anaconda安装一些包出现:Connection broken: OSError("(104, \'ECONNRESET\')")

('Connection broken: OSError("(104, \'ECONNRESET\')")', OSError("(104, 'ECONNRESET')"))发生场景:在Ubuntu,使用Anaconda安装一些包。这种问题大概就是下载国外的包什么的网速太慢了,下载失败。解决办法:1.一般我都是挂 V批N 解决,不知道今天啥问题不行,可能是我用的日本服务器的问题吧。...

2020-03-08 19:45:12 5135

原创 Unity System.MethodAccessException: Method `UnityEditor.Build.BuildDefines.add_getScriptCompilationD

System.MethodAccessException: Method `UnityEditor.Build.BuildDefines.add_getScriptCompilationDC:/Users/chris/AppData/Local/Unity/cache/packages/packages.unity.com/com.unity.collab-proxy@1.2.15/Editor...

2020-03-03 12:15:46 1426 2

原创 微信小程序 移动端触碰区域一如何构造良好的用户体验 的探讨

在移动端,有时候我们用手指点击一个按钮,必须手指完完全全的放到按钮的边界内点击才可以触碰;很是麻烦,所以为了提高用户的体验,有时候触碰区域通常比我们实际的按钮要大一点。(这点不同于网页开发,因为在网页中鼠标的点击是非常精确的,而移动端由于手指等因素,往往没那么灵活)以一个点击切换的按钮为例进行讲解:功能的点击黑色的按钮。增加触碰区域的2种方法:1.设计师在切图的时候,尽量把图片切的大一点,...

2020-03-01 19:24:54 273

原创 微信小程序 在components的properties属性中,用observer监听并用setData修改其值 容易造成死循环

首先这是个大坑,大坑,,,,,, 坑首先看看官方对observer函数的解释:另外官方也提示了这个BUG:简单的讲就是当observer监听部分properties。先上示例BUG代码:当properties中的index变化时,会触发observer监听函数,进而会执行其中的数据更新this.setData函数,index数值更新;这样又触发observer,又执行this.s...

2020-02-28 23:40:08 7704 2

原创 微信小程序 code.startsWith is not a function;

调试下,发现是number,所以后面的引用会报错,得把他转换成string

2020-02-21 22:27:12 1947

原创 微信小程序 display: flex 与inline-flex的区别以及应用

讲到这个得从wxss的鼻祖css说起了。一般会将html元素分为两种,即块级元素和行内元素。一.块级元素:block element每个块级元素默认占一行高度,一行内添加一个块级元素后无法一般无法添加其他元素(float浮动后除外)。两个块级元素连续编辑时,会在页面自动换行显示。块级元素一般可嵌套块级元素或行内元素;说白了就是:就是一个四方块,可以放在页面上任何地方;好像一个段落,如果不另...

2020-02-20 23:09:56 1967

原创 微信小程序 绝对路径和相对路径

相对路径:相对的是他的同级文件,常用../表示返回倒退到上一级文件。红色的表示倒退到pages同级目录,绿色的表示倒退到根目录。绝对路径:从项目的根目录开始寻找文件,/代表项目的根目录。...

2020-02-20 18:25:02 5255

原创 微信小程序 使用flex-wrap换行后怎样消除间距

先说个题外话:今天在学习中发现微信小程序对flex属性做出了变化,就是传统的设置好flex属性和主轴后,元素默认靠齐四边对其(取决于主轴的设定);但在小程序中小程序会自动默认垂直居中了。正式开始了:每个块的高度设置为100px,height:100px;使用flex-wrap :wrap;换行后,发现1,2的距离相等。**为什么会这样呢?**这就是flex-wrap的机制,平分剩下高度,居中...

2020-02-20 17:31:21 3120 2

原创 微信小程序 我对页面生命周期的理解

这是官方的解释,起初不懂,实际踩了几个坑之后来看,豁然开朗。左边的是页面生命周期,右边的是应用生命周期;应用生命周期影响页面生命周期。是不是有点懵呢,没事先拆看。借鉴了某位同学的:http://www.wxapp-union.com/portal.php?mod=view一.几个重要函数理解首先要理解下这几个函数,因为整个周期都围绕这几个函数展开。onLoad(Object query...

2020-02-18 21:59:38 621

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除