自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(69)
  • 收藏
  • 关注

转载 插件化程序设计

将软件设计成插件化,通过基础库+微内核+核心插件+功能插件这种设计思想很容易把任何项目或者产品的一部分都设计成可以灵活扩展的软件。这其实是一种设计思想,但没有真正的普及到每个开发人员身上,个人认为这种设计技术应该像MVC,各种设计模式那样被开发人员熟知并灵活运用。至于设计模式里为什么没有插件模式这个问题本道只能归结于两者不是一条道上的,设计模式讲的是程序如何设计,是程序上的解耦;插件化讲...

2016-05-21 18:59:00 190

转载 推荐一篇好文:OSG OSGearth vs2010编译

链接:http://weibo.com/p/2304189447a8480102v2c2此文作者把用到的相关代码包放在:http://pan.baidu.com/s/1qW9a4zU按照步骤操作完,目前我的OSG源代码版算是编译成功了。在cmd中测试osg是否编译成功时,如果仅仅编译的是Debug版的话,那需要执行:osgviewerd cow.osg;如果是re...

2016-02-08 11:00:00 166

转载 关于缺少nvToolsExt64_1.lib时的PhysX的处理

我本人之所以缺少这个文件是因为我的PhysX如果你的PhysX是从UE4源代码中提取的,那么可能会出现如下错误,提示找不到nvToolsExt64_1.lib(本机是64bit的操作系统)那就执行ue4目录下的setup.bat,总得文件大小约4G。这是UE运行环境下的所有的依赖lib文件。文件:nvToolsExt32_1.lib,nvToolsExt64_1.lib,libnvT...

2016-02-07 17:58:00 466

转载 物理引擎-Physx的源代码去哪里找

前几天无意中看到了Physx开源了,就连自己的领导也高兴了一下,让本道士去下载源代码琢磨一下,顺便做几个例子跑起来。结果没成想这个nvidia的github上的源代码被移除了,而且csdn,pudn上都居然木有源代码。最后还是在ue4里找到了源码,但拿到ue4的源码还是得去github上,200多M,网上相关的资料太少了,下载地址:http://download.csdn.net/det...

2016-02-04 12:33:00 204

转载 三维变换的一个应用之组合变换

这种组合变换在实际开发当中应用很多,所以知道原理可以举一反三第一,你要明白矩阵是有结合律的第二,你要知道旋转矩阵 绕x轴 绕y轴 绕z轴时,这个旋转矩阵是三个形式的矩阵第三,你要明白为什么我们在旋转一个模型时一定要把它先移回原点,当然了,这个旋转矩阵有关小应用:对三角形(中心点(75,93,1))以中心点左旋转90度,要经过一下几步:1.将三角形的中心...

2015-05-23 16:30:00 136

转载 述职报告

个人基本情况简介(略)由于一直在先前公司从事GRIS报表模块的开发工作,且公司的核心项目GRIS是CMMI5级认证,在软件研发流程上非常规范,还获得过一次公司二等奖,参加项目级临时表改造、国家电网公司2014年财务决算的驻地技术支持,参与大概40个需求的评审和开发,负责过报表子模块——领导查询的设计和开发,研究过DevExpress.NET11的源代码,并想换报表目前正在使用的...

2015-04-15 18:43:00 96

转载 3D数学的实际应用

以前自己在学习三维程序开发时并没有在意3D数学在程序中的重要作用,但在实际工作中逐渐发现:自己忽视了3D数学的作用,我们实际开发工作总要求模型准确的变换,而不是强调渲染有多炫,那是游戏,如果是仿真程序的话,精准是第一位的,其次才是炫。推荐大家看《3D数学基础:图形与游戏开发.pdf》,注意细节。开发人员应用数学解决实际问题,大方面我们都知道,例如球坐标系是什么,笛卡尔坐标系是什么样的,矩...

2015-04-06 21:57:00 114

转载 为什么C#中要设计IntPtr?

示例代码:IntPtr vertex = someObj.Get().Lock(0,someObj.Get().GetSizeInBytes(), HardwareBuffer.LOCKOPTIONS.HBL_DISCARD);C#中的IntPtr相当于C++中的int*,之所以在C#中存在IntPtr完全是为了兼容基于C/C++的DLL或LIB,通过上面的代码可以判断L...

2015-03-23 18:41:00 79

转载 c#的逻辑运算符重载(二)

重载==以后,则==失去原有意义,这时可以使用object.equals(对象A,对象B)的方式进行判断,同样可以达到==的效果转载于:https://www.cnblogs.com/QQ122252656/p/4345760.html...

2015-03-17 22:35:00 79

转载 c#的逻辑运算符重载

不光是C++,实际上C#中同样可以对操作符重载。如:namespace Com.EVSoft.Math{ public class Vector3:BaseObject { ... ...... .. public static Vector3 operator + (Vector3 lVector,double rhs); public static...

2015-03-11 22:42:00 103

转载 Linux开机流程

在开机时,由于80x86的特性CS(Code Segment)这个寄存器中放的都是1,而IP(Instruction Pointer)这个寄存器中全部放着0,换句话说,CS=FFFF而IP=0000。此时,CPU就依据CS和IP的值,到FFFF0H去执行那个地方所放的指令。这时候,由于FFFF0H已经到到了高位置的顶端,所以,FFFF0H这个地方总会放一个JMP指令,跳到比较低的位置。...

2015-03-10 22:33:00 51

转载 分析结论---“尝试读取或写入保护的内存。这通常指示其他内存已损坏”

这种问题大多出现在已有代码且经过大量修改后,当前对象已经被其他库(如DLL,COM引用了当前对象)引用,但当前对象却被过早释放(如手工调用了Dispose或局部变量直接释放),在代码量巨大的情况下很难找到出错位置。少量代码可以使用排除法确定出错位置。转载于:https://www.cnblogs.com/QQ122252656/p/4306074.html...

2015-02-28 18:40:00 177

转载 一种比较少见的C#代码段

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.Runtim...

2015-02-16 09:45:00 56

转载 《云计算宝典:技术与实践》 记录点一

这本书主要是为了推广IBM的虚拟化及云计算技术,作者把IBM的部分产品和解决方案基于虚拟化和云计算技术又做了一道加工,从而提升了资源利用率、降低了管理复杂性、简化了服务部署、运行时管理。云计算的概念:相对于“分布式计算”和“网格计算”等更加虚无缥缈。“云计算”这个词是自上而下的,很多行业精英和学术专家都很难给云计算下定义。云计算案例一:美国国家档案馆公开了一批资料,这批...

2015-02-09 18:08:00 70

转载 接口的一种新的描述

“场景图的操作维持在接口级别;它并不关心去操作图形的具体算法实现,它只是通过信号(它们的方法)来操作场景图,进而忽略了具体的算法实现。”SDK开发文档中,之所以摘出来,是因为它把接口起了个新名词“信号”,这个就与Qt有异曲同工之妙了。实际上就连“场景”在计算机软件中都有两个含义:一个指功能的应用场景,一个指三维空间中的场景。转载于:https://ww...

2015-02-07 12:42:00 47

转载 Qt信号与槽应用实例一

.....connect(m_pGlobelWidget,signal(globeControlClick(object,object)),this,slot(globeControlClick(object,object)))...signal中是m_pGlobelWidget本身具有的,qt中定义了此信号(有点类似MFC的消息)的触发规则slot中是响应此...

2015-02-05 17:59:00 52

转载 项目移植点滴

15.1.29 以前没接触过项目移植的工作。之所以会有移植是因为我们自主开发的底层平台变化了,底层平台从3.2一下子跳到了5.0,从版本号看得出来这是一次巨变,所以直接导致以前的做过的项目无法使用,但客户不会管换架构的问题,这是软件公司内部的事情,客户要的就是和之前一样的结果,如果锦上添花也可以,但不会给你一分钱,说到底移植是软件公司自觉完善自己产品的一个举动。移植的项目...

2015-02-03 18:39:00 125

转载 用C++实现的SDK跨平台心得体会

C/C++的跨平台特性相比于Java更加原生(Java是一次编译到处运行,而C/C ++则需要拿着源码重新编译一遍),实现一个C/C++跨平台程序一般有几点做法:1.使用Qt2.使用ANSI C/C++支持的函数3.条件编译,如#if defined(__symbian32__) #define xx_platform xx_platform_symbian#...

2015-01-28 18:40:00 161

转载 关于OpenGL的性能方面的技巧(不时更新)

显示列表可以有效提高渲染性能渲染顺序顶点层次分配内存管理递归查找在有引擎的情况下,同一个模型对象会使用同一份内存和显存优化裁剪算法,去掉无需渲染的对象纹理阴影比体阴影效率要高尽量使用UVW贴图模型打组,但跨度不能过大,否则裁剪减少尽量不用精细模型和精细贴图转载于:https://www.cnblogs.com/QQ122252656/p/41835...

2015-01-28 18:39:00 70

转载 C++嵌套多个命名空间举例

首先在结构上是能经得起推敲的,举个例子:test.h#pragma region 嵌套多个命名空间举例 namespace Group { namespace Company { namespace Department { class...

2015-01-26 21:41:00 213

转载 linux系统中grub配置文件

安装了Windows和Linux时肯定要通过GRUB进行引导,GRUB引导器的主配置文件路径/boot/grub/grub.conf(也可能是/boot/grub2/grub.conf),以#号开头的是注释。基本上修改给默认启动的系统或等待时间是没啥问题的。配置选项解释:# 注释行timeout 标识默认等待的时间default 默认的操作系统是由default...

2015-01-25 14:53:00 136

转载 VC++2010 中Debug和Release配置

刚刚遇到了Release模式正常运行,而直接切换到Debug报错的问题,后来发现是Debug模式和Release模式配置不同造成的,再此记录一下解决方法:1.项目属性->切换到Release模式->C/C++->常规->附加包含目录,拷贝文本到Debug模式下2.项目属性->切换到Release模式->链接器->常规->附加...

2015-01-24 20:31:00 457

转载 对EV-Globe5.0资源体系的简单理解

如果直接从OpenGL或DirectX底层做起的话,根本就不存在资源管理这一个思想。所谓的资源,就是说内容要从文件读取为我所用的那些文件,所以我们看到的更多的是模型、骨骼、材质、着色器、纹理、字体等等这些。但EV-Globe5.0作为一个引擎,为了统一管理,于是就有了资源管理的思想,从而产生了资源管理器这一概念。资源管理器针对模型、骨骼、材质、着色器、纹理、字体等的管理都有...

2015-01-21 23:23:00 272

转载 C++中关于无法解析的外部符号问题LNK2019问题的总结

网上一般有很全面的解决方法,最近恰好本道长也遇到了这种问题,也恰好解决了,这种问题应该算作配置问题,而非程序本身问题,多数是因为接手了生疏的程序导致,此问题看上去很简单,但木有经验的话很难迅速找到解决方法,所以更多的是着急,在此做一个记录。这个异常是出现在链接阶段,也就是源代码跟lib或dll链接时出现的,主要是因为以下两个原因:1.头文件中有函数声明,而cpp文件中没...

2015-01-20 21:17:00 96

转载 C#下调用C++ SDK的编码常识

一组编码规范,通过C#调用C++ 自动封装的C# SDK,会发现面向对象思想的重要性。C++ SDK可以使用自动封装工具转换成C# SDK。但需要遵守如下规则:1.如果需要对C#对象进行判断,则分如下三种情况(以BMPPen为例): 判断C#对象本身是否相等 bool isEqual=object.Equals(bp1,bp2); 判断C#持有的...

2015-01-19 18:51:00 155

转载 平截锥体

平截锥体是一个六面体,在游戏中(虚拟现实仿真也会用到)的最大用处就是描述摄像机的视域。平截锥体最大的特征是上下两面是平行四边形。平截锥体的功能需求和应用场景相对简单,所以不需要过多的功能。enum Frustum{ RIGHT = 0, // The RIGHT side of the frustum LEFT = 1, //...

2015-01-18 19:53:00 422

转载 RAID、软RAID和硬RAID

RAID(redundant array of inexpensive disks):独立的硬盘冗余阵列,基本思想是把多个小硬盘组合在一起成为一个磁盘组,通过软件或硬件的管理达到性能提升或容量增大或增加冗余。software RAID:软阵列通过CPU的IO运算和硬盘上的文件设置,可以提供最基本的RAID容错功能。hardware RAID:硬阵列由独立的硬件进行IO运算,...

2015-01-18 11:13:00 203

转载 面向对象的聚合意味着什么?

实际上面向对象的思想课本上到处都有,如果是小程序的话、只有几把枪的情况下,面向对象的思想根本体现不出什么优势来,但三五百人的开发队伍,并且又是那种平台+应用的开发模式的话,这时的面向对象的思想才有用武之地:这是一种思想上的共识,有了这种思想,不管是平台开发人员还是应用开发人员才可以提高开发效率、减少通信成本、提高代码复用率: 举个例子,我们要创建一个Open...

2015-01-17 16:26:00 90

转载 绘图批次的概念

商业引擎中为了提高绘图效率,所以要尽量减少提交到图形加速卡的数据量.所以就有了分批渲染的概念.渲染不同的材质或者模型都会导致渲染状态改变,每一个改变都会触发新的绘图的操作,所以尽量减少渲染状态的改变就可以节省硬件的耗时.图层:数据集被加载到地图或三维场景中显示时被称为图层.图层是数据集的可视化定义.传统的二维地图是由图层构成,每个图层都有某一类信息分布在地图主框架上....

2015-01-15 18:45:00 55

转载 多媒体笔试题

一段采样率40kHz双声道16位PCM数据,请问40KByte的该PCM数据播放时间是多少毫秒?一段420P的YUV数据宽320 高240FPS,请问5秒钟的数据是多少字节?请问H.264与motion JPEG编码理论上最大的区别是什么?请问H.264 I帧与P帧,B帧的区别?以下是一段H.264帧,请问编码后的顺序是顺序号: 1 2 3 4 5 6 7帧类型:...

2015-01-09 08:15:00 134

转载 高性能创建对象数组的技巧

...不管Student obj[10];//obj是指针首地址还是Student* pStudent=new Student[10];...deletepStudent; ... 实际上最终给各个对象初始化的时候调用的都是默认的构造函数(结构体是没有构造函数的),如果有重载的构造函数的话,再使用这种方式岂不浪费时间?以下是解决方法:class Student...

2015-01-07 10:25:00 45

转载 C++笔试题(部分)

1.简述C++11和Boost2.struct和union与class的区别3.为什么C++中调用被C编译器编译后的函数要加extern C声明?4.以下代码哪里不对?#pragma region copyconst char NAME[]="Hello world";string& copy(const char* pString){ return ne...

2015-01-07 09:36:00 47

转载 OpenGL笔试题

简述FrameBuffer,RenderBuffer,Depth Buffer,Framebuffer attachment,Stencil buffer的关系简述利用OpenGL执行图像叠加(大PNG图像叠加有alpha通道的小PNG图像),写出步骤列出着色器的四个内置变量和十个内置函数OpenGL如何处理浮点的不精确问题(即如何避免多次计算不一致的问题)三维纹理如何存...

2015-01-07 08:33:00 97

转载 从程序员角度对帧速的解释

帧速是计算机图形学中必须接触的概念,是衡量算法或显卡优劣的重要指标,强调的是计算能力。官方定义的帧速:动态画面每秒钟展现的帧数,用于衡量视频信号传输的速度,单位为帧/秒(fps)。程序员角度就是下面的代码,大体意思就是一秒钟内执行了多少次大循环,这里的CaculateFrameRate()方法更像是一个哨兵,每渲染一次,就调用一次这样的代码。/** 计算帧...

2015-01-07 08:25:00 86

转载 GLSL第一个程序

拿出来直接运行即可,可以直接理解什么是GLSL,之所以贴出来是因为很多文章写得乱七八糟,一面解释,一面贴代码,有必要吗??很多GLSL电子书都有很详细的解释的。我的OpenGL框架代码可能和你的框架的有些不同,可以把init、update、draw实现拿出来即可。vertexshader.txtuniform vec3 lightposition;//光源位置un...

2015-01-03 18:43:00 118

转载 几种常用过的按位操作符技术

控制硬件时常涉及到打开/关闭特定的位或查看它们的状态。按位操作符(<<,>>,~,&,|,^)提供了这种能力。下面的例子中,lottabits表示一个值,bit表示特定位的值。位从右到左进行编号,从0开始,因此,第n位的值为2的n次方(通常情况下只有一位为1,这是为了简洁处理)。例如,只有第3位为1的整数的值为2的3次方。(《C++ Primer Plus...

2015-01-02 16:21:00 61

转载 一段老代码之一

以前要想提高程序速度,总想直接操作硬件从而让程序执行效率迅速上升,按位操作符(<<,>>,~,&,|,^)就可以操作硬件。但现在编译器在优化代码方面越来越好,所以这种差异正在减小。(《C++ Primer Plus》附录E)void test110(){ int q=47; q>>=2; cout<<q&...

2015-01-02 15:04:00 43

转载 C++代码段六

摘自《Primer Plus》浮点数优缺点:1 void test109()2 {3 float a=2.34E+22f;4 float b=a+1.0f;5 cout<<"a ="<<a<<endl;6 cout<<"b-a="<<b-a<<...

2015-01-01 21:03:00 191

转载 软件项目组织的建立与人员分工(二)

程序开发小组的组织形式,通常三种:1.主程序员式:1位主程序员(高级工程师)、2到5位技术员(工程师)以及1位后援工程师。主程序员是小组的领导和核心,负责小组的全部技术活动计划、协调与管理、关键技术以及评审工作。程序员负责项目的开发、文档资料的编写。后援程序员协助和支持主程序员,必要时可以替代主程序员。缺点是干的好坏依赖主程序员技术水平和管理才能。2.民主式:虽然也...

2014-12-30 20:46:00 458

转载 软件项目组织的建立与人员分工(一)

在软件开发过程中,人员的选择、组织和分配关系软件产品质量、软件开发效率、软件开发进度和软件开发过程管理的重大问题,项目负责人必须给予高度重视。一个好的软件项目组织是保证软件开发能够顺利进行的必要条件之一。建立软件开发组织的时候要注意的原则是:1.尽早落实责任,特别是软件项目负责人的责任。2.减少接口,防止推皮球。3.责权均衡,软件经理的责任不应该比他的权利还大。...

2014-12-28 22:59:00 266

空空如也

空空如也

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

TA关注的人

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