<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[imcomma的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/imcomma</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; imcomma]]></copyright><item><title><![CDATA[webgl - 实现景深效果（二）]]></title><link>https://blog.youkuaiyun.com/imcomma/article/details/99738896</link><guid>https://blog.youkuaiyun.com/imcomma/article/details/99738896</guid><author>imcomma</author><pubDate>Mon, 19 Aug 2019 17:05:15 +0800</pubDate><description><![CDATA[webgl - 实现景深效果（二）
上回我们说到，仅仅使用简单的混合会导致渲染出现两个问题：

后景混入了对焦区域的颜色
前景边缘过于清晰

那么如何解决这两个问题呢？答案是对前景和后景分开做处理。我们可以先处理后景，再处理前景。
后景处理
后景混入前景的问题好办，在计算模糊时，我们对范围内每一个像素做一个判断，如果是前景或者对焦区域的点，就将其排除掉。
前景处理
前景边缘过于清晰的问题就需要用点...]]></description><category></category></item><item><title><![CDATA[webgl - 实现景深效果（一）]]></title><link>https://blog.youkuaiyun.com/imcomma/article/details/99738781</link><guid>https://blog.youkuaiyun.com/imcomma/article/details/99738781</guid><author>imcomma</author><pubDate>Mon, 19 Aug 2019 17:01:24 +0800</pubDate><description><![CDATA[webgl - 实现景深效果（一）
前言
最近对摄影颇有兴趣，入了一个定焦头，能拍出有景深效果的片了。因为对景深效果有点着迷，就想着在渲染中能不能实现类似的效果。玩了八方旅人之后发觉是这是可行的，于是google之，找了一些资料，自己撸了一个简单的景深效果。
现实中相机产生景深效果原理
相机在成像的时候，存在一个合焦面，只有处于合焦面上的物体成像是最清晰的，而合焦面之外的平面所成的像，是模糊的。
...]]></description><category></category></item><item><title><![CDATA[Ogre编译速度慢的一种解决方法]]></title><link>https://blog.youkuaiyun.com/imcomma/article/details/68954140</link><guid>https://blog.youkuaiyun.com/imcomma/article/details/68954140</guid><author>imcomma</author><pubDate>Sun, 02 Apr 2017 21:26:52 +0800</pubDate><description><![CDATA[使用预编译头。
具体过程可参考这里。
但博主的步骤有点问题，应该对stdafx.cpp的预编译投选项设为/Yc，而整个项目设置为/Yu。
另外使用的时候要注意，必须把stdafx.h放在所有需要include该头文件的cpp文件的最上面。



其实不光是Ogre，大型的C++项目都可以通过这种方式加快编译过程。]]></description><category></category></item><item><title><![CDATA[opengl投影透视矩阵的个人总结]]></title><link>https://blog.youkuaiyun.com/imcomma/article/details/68942565</link><guid>https://blog.youkuaiyun.com/imcomma/article/details/68942565</guid><author>imcomma</author><pubDate>Sat, 01 Apr 2017 12:24:24 +0800</pubDate><description><![CDATA[预备知识

1.opengl的透视投影矩阵是把一个棱锥视见体转化为规范化视见体的投影矩阵。所谓规范化视见体，就是由x=+-1, y=+-1, z=+-1围成的视见体。



2.透视投影基础：透视投影的数学原理是相似三角形。 视见体中的一个点（x,y,z）沿着向量它和原点的连线，投影到透视平面z = d上，投影所得到的点坐标设为(xp,yp,d)。根据相似三角形原理，有xp/d = x /z，故...]]></description><category></category></item><item><title><![CDATA[VS2012 can't find localized resources错误]]></title><link>https://blog.youkuaiyun.com/imcomma/article/details/61427648</link><guid>https://blog.youkuaiyun.com/imcomma/article/details/61427648</guid><author>imcomma</author><pubDate>Sat, 11 Mar 2017 20:31:57 +0800</pubDate><description><![CDATA[问题描述：
我在安装了vs2012之后，因项目需要，又安装了vs2015。再用vs2012打开原来的项目时，vs报错：“can't find localized resources”，项目不能正常加载。
解决方案：
使用vs2012安装程序，点击“修复”。修复完成后重启即可。]]></description><category></category></item><item><title><![CDATA[ASP.Net MVC 远程部署总结]]></title><link>https://blog.youkuaiyun.com/imcomma/article/details/59167991</link><guid>https://blog.youkuaiyun.com/imcomma/article/details/59167991</guid><author>imcomma</author><pubDate>Wed, 01 Mar 2017 22:15:34 +0800</pubDate><description><![CDATA[服务器上需安装的东西
1.安装“WEB服务器iis” 。其中子项“应用程序开发”需勾选需要的ASP.NET版本。
2.安装“管理工具”的“iis管理控制台”和“管理服务”
3.安装sqlserver。
 

腾讯云服务器配置
“安全组” 中 开放http端口，以及iis远程管理服务的端口。由于http和iis远程管理服务的服务都是基于tcp的，所以在安全组的“入站规则”中规则协议选择]]></description><category></category></item><item><title><![CDATA[对CImage类中GetPitch()和GetBPP()的理解]]></title><link>https://blog.youkuaiyun.com/imcomma/article/details/53057564</link><guid>https://blog.youkuaiyun.com/imcomma/article/details/53057564</guid><author>imcomma</author><pubDate>Sun, 06 Nov 2016 23:10:43 +0800</pubDate><description><![CDATA[在CImage中，一行的数据如果不是4byte的整数倍，是要被强制补足成4byte的整数倍的。比如，一张355*120的彩色图片，在CImage中一行的数据偏移量（pitch），是
 （355*3+3）/4*4 = 1068 byte。而width*bitCount = 355*3 = 1065 byte。所以计算一个像素点在内存中的位置时，不能用（y*width+x）*bitCount，要用y]]></description><category></category></item><item><title><![CDATA[Nsight调试CUDA程序忽略断点]]></title><link>https://blog.youkuaiyun.com/imcomma/article/details/53007869</link><guid>https://blog.youkuaiyun.com/imcomma/article/details/53007869</guid><author>imcomma</author><pubDate>Wed, 02 Nov 2016 15:08:08 +0800</pubDate><description><![CDATA[感觉任何一个框架在上手时都要踩不少坑啊。这几天我就又踩了CUDA的一个坑。现记录于下，供有需要的人参考。


环境：win7 + CUDA7.5 + VS2012


问题描述：使用CUDA编程时，在核函数内设置断点，用Nsight进行调试。点击Nsight->start CUDA debugging后，Nsight忽视断点，直接执行。项目文件是老师给的例子，使用VS2013创建。]]></description><category></category></item><item><title><![CDATA[fopen函数以‘rb’模式 和 ‘r’ 模式打开文件的不同]]></title><link>https://blog.youkuaiyun.com/imcomma/article/details/52936888</link><guid>https://blog.youkuaiyun.com/imcomma/article/details/52936888</guid><author>imcomma</author><pubDate>Wed, 26 Oct 2016 18:22:48 +0800</pubDate><description><![CDATA[交互式计算机图形学——基于opengl着色器的自顶向下方法的附录中，给出了读取glsl的函数：
char* readShaderSource(const char *path){
	FILE *fp = fopen(path,"r");

	if(fp==nullptr)
	  return nullptr;

	fseek(fp,0,SEEK_END);
	int size =  ftell(]]></description><category></category></item><item><title><![CDATA[opengl 链接着色器时失败的一个可能原因：局部变量太大]]></title><link>https://blog.youkuaiyun.com/imcomma/article/details/52935949</link><guid>https://blog.youkuaiyun.com/imcomma/article/details/52935949</guid><author>imcomma</author><pubDate>Wed, 26 Oct 2016 17:07:26 +0800</pubDate><description><![CDATA[今日写opengl程序时遇到一个奇怪的错误，百思不得其解。程序运行到glLinkProgram(program);时便崩溃，不知道是什么原因。最后我想，难不成是数组太大了？上网一查，vs最大局部变量为1MB。于是把堆栈区最大值改成10MB，问题解决。自己经常上stackoverflow，今天还真遇到stackoverflow的问题了......
其实到这里还有一个问题没有解决，那就是我的局部变量]]></description><category></category></item><item><title><![CDATA[写VS配置文件时遇到的一个操蛋问题]]></title><link>https://blog.youkuaiyun.com/imcomma/article/details/52760702</link><guid>https://blog.youkuaiyun.com/imcomma/article/details/52760702</guid><author>imcomma</author><pubDate>Sat, 08 Oct 2016 21:21:34 +0800</pubDate><description><![CDATA[今天在写opencv的VS配置文件时遇到了一个很操蛋的问题：包含目录写成带有环境变量的形式VS就会报错，说打不开头文件。而一旦改写成绝对路径就OK。
    但奇怪的是，我的库目录明明也是写成了带有环境变量的形式，但这里却无需修改，真是奇怪。
    最后仔细一看，发现原来是配置文件里的包含目录前面多加了一个空格，把这空格去掉，终于能运行了。。。
    最后将有问题的配置文件贴于下，以提醒]]></description><category></category></item><item><title><![CDATA[8086 CPU 寄存器简介]]></title><link>https://blog.youkuaiyun.com/imcomma/article/details/50957269</link><guid>https://blog.youkuaiyun.com/imcomma/article/details/50957269</guid><author>imcomma</author><pubDate>Tue, 22 Mar 2016 18:16:18 +0800</pubDate><description><![CDATA[引子
打算写几篇稍近底层或者说是基础的博文，浅要介绍或者说是回顾一些基础知识，
自然，还是得从最基础的开始，那就从汇编语言开刀吧，
从汇编语言开刀的话，我们必须还先要了解一些其他东西，
像  CPU ，内存这些知识点还是理解深刻一点的比较好，
所以这一篇博文就绕着 80x86  CPU 中寄存器的基础部分下手，至于其他的一些将会在后续的博文中介绍 。
同时在这里说明一下，本篇博文介绍的]]></description><category></category></item><item><title><![CDATA[随笔]]></title><link>https://blog.youkuaiyun.com/imcomma/article/details/50933893</link><guid>https://blog.youkuaiyun.com/imcomma/article/details/50933893</guid><author>imcomma</author><pubDate>Sun, 20 Mar 2016 01:20:40 +0800</pubDate><description><![CDATA[最近一个月以来，自己的打码量和阅码量恐怕达到了有史以来的最高峰。虽然跟大神仍不在一个级别上，但于我而言，已经是很大的进步了。在这打码和阅码的过程中，也逐渐对自己要做的事情有了一点自信。小波说（原话记不得了，这是我的转述），古往今来，凡是取得了一定成就的人，大多是先做一些小事，取得了一点小成就，然后有了一点自信；进而尝试着去做大一点的事，取得稍大一点的成就......信心在这个过程中不断地积累，最后]]></description><category></category></item><item><title><![CDATA[va_start和va_end使用详解]]></title><link>https://blog.youkuaiyun.com/imcomma/article/details/50918247</link><guid>https://blog.youkuaiyun.com/imcomma/article/details/50918247</guid><author>imcomma</author><pubDate>Thu, 17 Mar 2016 23:29:07 +0800</pubDate><description><![CDATA[本文主要介绍va_start和va_end的使用及原理。
　　在以前的一篇帖子Format MessageBox 详解中曾使用到va_start和va_end这两个宏，但对它们也只是泛泛的了解。
　　介绍这两个宏之前先看一下C中传递函数的参数时的用法和原理： 

1.在C中，当我们无法列出传递函数的所有实参的类型和数目时,可以用省略号指定参数表

void foo(...);
voi]]></description><category></category></item><item><title><![CDATA[字符串常量修改问题]]></title><link>https://blog.youkuaiyun.com/imcomma/article/details/50907008</link><guid>https://blog.youkuaiyun.com/imcomma/article/details/50907008</guid><author>imcomma</author><pubDate>Wed, 16 Mar 2016 18:20:37 +0800</pubDate><description><![CDATA[最近在写操作系统，遇到了不少问题......谁叫我只有薄弱的c++基础和java基础呢。在正式开始写内核之前还要先了解makefile,链接器脚本，grub，gcc......这些东西之前闻所未闻，光了解这些东西都花了我两周时间（当然，这两周也在干其他事，分配给操作系统的时间不多）。不过万事开头难，既然决定要写，总得熬过最开始的艰难期。这周（开学第三周），我终于开始了内核之旅。
  我是照着hu]]></description><category></category></item><item><title><![CDATA[hadoop wordcount V2.0]]></title><link>https://blog.youkuaiyun.com/imcomma/article/details/50699694</link><guid>https://blog.youkuaiyun.com/imcomma/article/details/50699694</guid><author>imcomma</author><pubDate>Fri, 19 Feb 2016 18:21:44 +0800</pubDate><description><![CDATA[学习hadoop的mapreduce，最经典的例子就是wordcount 。然而在hadoop官网上还有一个wordcount v2.0，今天花了半个下午时间研究了一下，感觉有点心得。现把源码放上，并加以注释，以便日后回顾之用。解读可能有不妥之处，欢迎指正。
源码来源：http://hadoop.apache.org/docs/r2.6.4/hadoop-mapreduce-client/had]]></description><category></category></item><item><title><![CDATA[hadoop集群环境搭建的血泪史]]></title><link>https://blog.youkuaiyun.com/imcomma/article/details/50676451</link><guid>https://blog.youkuaiyun.com/imcomma/article/details/50676451</guid><author>imcomma</author><pubDate>Tue, 16 Feb 2016 20:14:44 +0800</pubDate><description><![CDATA[寒假从老家回来之后就着手hadoop集群环境的搭建，预期两天干完，最后花了四天才搞定。一方面是寒假里比较懒散，做事没什么效率，另一方面也的确是受了误导，走了不少弯路。网上hadoop集群环境搭建的文章一搜一大把，但真正靠谱的没几篇，要么是hadoop版本太老，要么是步骤有缺漏。最后好不容易找到了一张靠谱的帖子，这才解决了问题。]]></description><category></category></item><item><title><![CDATA[c++数组的几个有趣性质]]></title><link>https://blog.youkuaiyun.com/imcomma/article/details/50545382</link><guid>https://blog.youkuaiyun.com/imcomma/article/details/50545382</guid><author>imcomma</author><pubDate>Tue, 19 Jan 2016 23:34:32 +0800</pubDate><description><![CDATA[1.数组可以有负数下标
这是我在数组中画圆时偶然发现的。如图，圆左边的一部分跑到右边去了。

我猜这可能是负数下标的问题。按照“数组名存放的是数组第一个元素的地址”以及“数组下标表示的是偏移量”这两条理论，我进行了如下推理：

对一个二维数组a[m][n],元素a[x][y]的偏移量计算公式：n*x+y。以往我都以为x,y必须是正数，但其实x,y不一定非要同时为正数，只要m*n>n*x+]]></description><category></category></item><item><title><![CDATA[c语言使用stdin相关函数时一个蛋疼的问题]]></title><link>https://blog.youkuaiyun.com/imcomma/article/details/50426055</link><guid>https://blog.youkuaiyun.com/imcomma/article/details/50426055</guid><author>imcomma</author><pubDate>Tue, 29 Dec 2015 13:41:35 +0800</pubDate><description><![CDATA[事情的起因是这样的，博主的一个高中同学在自学 c语言，看博主是读软件专业的，于是经常跑来问博主问题。一般博主都能轻松解决，不是因为c语言功力深厚，而是他问的那些东西实在太简单。尽管博主学的是c++，而且可怜的c++知识主要是从考前临阵磨枪以及一个简单的大作业中得来，但对付这些新手的问题还是绰绰有余的。不过这次遇到的问题碰到了博主的短板：输入输出。当时，考试不考，所以一直不懂。趁着这个机会，我补了一]]></description><category></category></item></channel></rss>