作为一名非主修C#的程序员,在此记录下学习与工作中C#的有用内容,持续更新 对类型进行约束,class指定了类型必须是引用类型,new()指定了类型必须具有一个无参的构造函数 where T : class, new() 创建别名,实现C的typedef类似的功能 using MyInt=System.Int32;//为Int32定义别名  创建从当日00:00:00开始的时间 DateTime date=DateTime.Now; date=date.Date; //通过返回时间的日期部分来解…
查看当前正在使用的AGAL代码可以在程序开始时添加下面的代码,AGAL代码会被trace出来: Debug.active = true; 具体的输出是在MaterialPassBase类的updateProgram方法中. ----- 使用stereo包(立体包)渲染的图像可以配合红蓝眼立体镜来查看立体效果. ----- SkyBox是不可到达的对象,会优先被渲染(所以总是处于最后方),一般一个场景只会包含一个SkyBox.…
我之前解析过Starling的核心渲染流程,相比Away3D而言Starling真的是足够简单,不过幸运的是两者的渲染流程是大体上相似的:Starling的渲染是每帧调用Starling类中的render方法,类似的Away3D的渲染是每帧调用View3D类中的render方法,那我们要了解Away3D的渲染就需要从这个方法入手了. View3D的render方法源码: /** * Renders the view. */ public function render():void { //if…
在深入解读Away3D的代码之前,需要对其有个大概的认识.本节主要列出Away3D中常用的类,并附上说明: View3D: Away3D的入口类,即创建该类就会初始化一个可以使用GPU呈现3D的对象,需要注意的是该类是继承自Sprite,所以可以将其添加到2D显示列表中,但是最终呈现3D是在Stage3D中进行的,所以实际的3D对象并非存在View3D这个2D容器中.View3D更像一个管理3D内容的管理器,并且每帧都需要调用其render方法来渲染其内部的所有3D对象. Scene3D: 每个…
数据模块: Away3D中最核心的数据类是Mesh类,我们先看看Mesh类的继承关系: NamedAssetBase:为对象提供id和name属性,是Away3D大部分类的基类: Object3D:3D对象基类,提供方便操作3D对象本地转换矩阵的功能,提供坐标.旋转.缩放等属性和较多的实用方法,如lookAt.moveLeft等,注意Object3D对象并不是可渲染对象: ObjectContainer3D:作为可存放3D对象的容器,是构成显示列表树形结构的核心,提供sceneTransform…
还是老样子,我们还是需要先简略的看一下View3D中render方法的渲染代码,已添加注释: //如果使用了 Filter3D 的话会判断是否需要渲染深度图, 如果需要的话会在实际渲染之前先渲染深度图 if (_requireDepthRender) //深度图会被渲染到 _depthRender 这个贴图对象上 renderSceneDepthToTexture(_entityCollector); // todo: perform depth prepass after light upda…
动画模块核心存放在away3d.animators包里: Away3D支持下面几种动画格式: VertexAnimator:顶点动画 SkeletonAnimator:骨骼动画 UVAnimator:UV动画 SpriteSheetAnimator:二维切换动画 ParticleAnimator:粒子动画 PathAnimator:路径动画 这几种动画都有各自的特点及应用场景,一般而在3D游戏中应用得最广泛的是骨骼动画,因为骨骼动画是人物动画的核心,我们下半段会专门详解这个动画: 动画简介 核心…
从看C#入门经典开始系统的学习C#,本文主要记录学习过程中的一些知识点,也是我博客生涯的开始,比较重要成体系的部分会单重新写文章整理归纳. 1.一字不变的字符串 @字符 使转义序列不被处理,按照原样输出(除双引号外的转义序列,避免结束字符串) string filePath = "c:\\Docs\\Source\\a.txt" string filePath = @"c:\Docs\Source\a.txt" 2.checked关键字 类型转换时,如果使用了che…
1. 添加到计划任务 为脚本增加可执行权限 sudo chmod +x yeelink.sh 将脚本加入cronjob(计划任务) sudo crontab -e 在cornjob文件中添加下面一行,并保存(表示10分钟执行一下脚本,时间可自行修改) */10 * * * * /home/pi/yeelink.sh 2. ps -A 查看后台运行程序 3. 执行QT的示例程序时,出现GL/gl.h:No such file的错误 错误提醒找不到gl.h文件,是由于系统中没有安装OpenGL库:…
1.自定义JPQL语句,出现Not supported for DML operations 错误. 解决方案:在@Query注解上面加上@Modifying注解. //出现问题的代码 @Query("delete from SysDept t where t.id =:id") void delSysDept(@Param("id")String id); //修改后的代码 @Modifying @Query("delete from SysDept t…