shilod
码龄11年
关注
提问 私信
  • 博客:92,723
    社区:1,723
    94,446
    总访问量
  • 23
    原创
  • 946,588
    排名
  • 22
    粉丝
  • 0
    铁粉

个人简介:打造属于自己的标签——王振

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:香港
  • 加入CSDN时间: 2013-12-27
博客简介:

u013299585的专栏

查看详细资料
个人成就
  • 获得46次点赞
  • 内容获得22次评论
  • 获得165次收藏
创作历程
  • 22篇
    2017年
  • 5篇
    2016年
  • 1篇
    2014年
成就勋章
TA的专栏
  • opencv
    2篇
  • openGL
    7篇
  • c++
    15篇
  • 图形学
    2篇
  • 编程工具
    2篇
创作活动更多

2024 博客之星年度评选报名已开启

博主的专属年度盛宴,一年仅有一次!MAC mini、大疆无人机、华为手表等精美奖品等你来拿!

去参加
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

Effective c++ (1)

effective c++
原创
发布博客 2017.11.28 ·
310 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

STL 容器应用场景

STL中常见容器,主要包括如下几种: vector, list, deque,set,multiset, map, multimap。选用合适的容器,对编写高效的程序,简洁的代码有重要意义; 最近就项目中就涉及到一个容器选择的问题,设计一个数据结构时,开始使用了一个错误的容器,容器设计非常复杂,使用起来也特别不方便,代码冗余而且昂长。后来重新设计数据结构,使用其他的容器,将将近150行的代码,缩
原创
发布博客 2017.10.23 ·
1984 阅读 ·
5 点赞 ·
0 评论 ·
8 收藏

堆 和 栈详解:存储位置,作用机理,区别

转自此处问题描述编程语言书籍中经常解释值类型被创建在栈上,引用类型被创建在堆上,但是并没有本质上解释这堆和栈是什么。我仅有高级语言编程经验,没有看过对此更清晰的解释。我的意思是我理解什么是栈,但是它们到底是什么,在哪儿呢(站在实际的计算机物理内存的角度上看)?在通常情况下由操作系统(OS)和语言的运行时(runtime)控制吗?它们的作用范围是什么?它们的大小由什么决定?哪个更快?答案一
转载
发布博客 2017.10.23 ·
3847 阅读 ·
4 点赞 ·
1 评论 ·
19 收藏

UML表示以及对应的实现代码

1,继承。 代码实现class Son : public Father{}2,实现接口 代码实现:class Son : public EatImp{}3,关联:当一个类知道另外一个类时。 代码实现:class Bird{ private: Climate* m_Climate;}4,聚合关系:聚合表示的“拥有关系”,体现在A对象可以B对象,B对象不是A对象
原创
发布博客 2017.09.11 ·
1074 阅读 ·
1 点赞 ·
0 评论 ·
4 收藏

c++ 四种类型转化方式

声明:转载出处:转自此处C风格的强制类型转换(Type Cast)很简单,不管什么类型的转换统统是:TYPE b = (TYPE)a,但是c 风格的类型转换有不少的缺点,有的时候用c风格的转换是不合适的,因为它可以在任意类型之间转换,比如你可以把一个指向const对象的指针转换成指向非 const对象的指针,把一个指向基类对象的指针转换成指向一个派生类对象的指针,这两种转换之间的差别是巨大的,但是传
转载
发布博客 2017.09.11 ·
930 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

c++ 零碎知识点集锦 二

1dynamic_cast将基类指针或者引用安全的转化到派生类的指针和引用2const_cast将常量指针或者引用转化为非常量的指针和引用3mutable的用法关键字一旦被改关键字修饰则可以改变任何变量的值包括const4dllimport 和 dllexport的含义及其用法5 __declspec的用法和含义6 动态链接库7 静态链接库8 外部链接 和 内部链接的区别9 实例化派
原创
发布博客 2017.09.09 ·
237 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

C++ 零碎知识点集锦 一

1,纯虚函数的定义:函数后面有=0,纯虚函数无需定义。void Func() = 0;2,虚函数: 作用:定义为虚函数,子类可以重写基类的虚函数。使该函数在基类和子类中存在多种定义(也就是多态)。2.1,如何通过虚函数实现多态? 虚函数和普通函数主要不同之处是:虚函数是运行时才被解析,确定调用该虚函数的是基类还是子类。然而普通函数则是在编译期就解析确定。//三个子类,一个父类SonA,SonB,
原创
发布博客 2017.09.09 ·
315 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

C++中 atexit函数 exit函数

一、exit()函数 函数声明:void exit(int state); exit()函数用于在程序运行的过程中随时结束程序,exit的参数state是返回给操作系统,返回0表示程序正常结束,非0表示程序非正常结束。main函数结束时也会隐式地调用exit函数。****exit函数运行时首先会执行由atexit()函数登记的函数,然后会做一些自身的清理工作,同时刷新所有输出流、关闭所有打开的流
转载
发布博客 2017.08.20 ·
518 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

多种方法实现多态!!!

本博客解决 如下几个问题!!!第一:什么是多态? 第二:传统方法怎么实现多态? 第三:是否有新的方法实现多态?什么是多态? 多态:多态指同一个实体同时具有多种形式。它是面向对象程序设计(OOP)的一个重要特征(引自百度百科)。 通俗解释:就是同一种实体,按道理来说,仅仅能表明一种状态。但是通过技术手段,让其可以表示多种状态,这就是多态!!!举个栗子 【例子】 编程角度解释:一个接口,多种
原创
发布博客 2017.07.29 ·
3130 阅读 ·
2 点赞 ·
0 评论 ·
4 收藏

SVN各种符号介绍

参考该连接SVN项目中常见符号介绍:灰色向右且中间有个减号的箭头(本地删除了,而SVN上未删除的文件),也就是说你删除确认后,一定要记得上库,跟svn保持一致。蓝色向左且中间有个减号的箭头(SVN上删除了,而本地未删除的文件)–比对svn库上代码,确定需要删除后,更新svn(删除无用代码)。红色双向箭头(SVN上修改过,本地也修改过的文件 )–这个表示本地和svn上都修改过,最好就是把本地修改合并到
转载
发布博客 2017.07.09 ·
1318 阅读 ·
1 点赞 ·
0 评论 ·
4 收藏

vs2015单元测试总结——3种方法可用

VS中有个非常有用的功能,单元测试。通过单元测试,开发人员和测试人员可以快速的检查C#,.net和c++项目中各个类的方法中是否有逻辑错误。单元测试仅仅需要创建一次,那么在每次更改源代码时候运行,以确保不引入bug。      对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如C语言中单元指一个函数,Java里或C++里单元指一个类,图形化的软件中可以指一个窗口或一个菜单
原创
发布博客 2017.06.24 ·
20103 阅读 ·
9 点赞 ·
3 评论 ·
67 收藏

函数模板限定数据类型 和 类模板限定数据类型 的方法

函数模板非常有用,特别实在对不同类型的数据进行统一处理的时候,比如说比较两个数的大小,template<typename T>bool compara(T& a,T& b){ return a<b;}但是有时候有特殊需求,比如说之前我做的一个项目,需要能够处理以glm中vec2,和vec3为数据类型的数据,进行同样的操作,但是又不能让其他类型的数据能够访问到该函数模板。此时就需要一种限
原创
发布博客 2017.06.23 ·
8088 阅读 ·
5 点赞 ·
1 评论 ·
13 收藏

STL unique()函数学习

在STL中,unique()函数是一个去重函数,STL中unique的函数 unique的功能是去除相邻(说明是对已经排序的容器进行去重)的重复元素(只保留一个),还有一个容易忽视的特性是它并不真正把重复的元素删除。他是c++中的函数,所以头文件要加#include<iostream.h>具体用法:int num[100];unique(num,mun+n)返回的是num去重后的尾地址,之所以说比不
转载
发布博客 2017.06.21 ·
337 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

OpenGL零碎知识点记录<仅供自己查看>

1:在几何着色器中,如果从顶点传入的原始位置坐标,没有被几何着色器作为中介传到片段着色器中的话,则不再显示原始顶点,仅仅显示几何着色器中生成的顶点。 2: uniform image2D 和uniform sampler2D 的区别。目前来看对于采样纹理的使用方法不一样: image2D 采样的话,使用//imageLoad — load a single texel from an image
原创
发布博客 2017.06.20 ·
852 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

VS 错误集锦

1:.dll 或者 .lib文件导入错误,运行时弹出框找不到dll文件,或者找不到.lib文件。请先确认dll和lib文件路径是否配置正确。如果正确还是提示这个错误,那么请重新打开该项目。
原创
发布博客 2017.06.19 ·
193 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Shadow volume实现细节

背景介绍背景介绍:目前阴影算法较为流行的有两种,分别是shadow mapping 和shadow volume。前者实现起来相对简单,可以发挥现在GPU可编程流水线的能力,但是由于先天不足,shadow mapping在处理动态光源/物体的时候开销过大,经常作为一种静态场景中的廉价替代物。而 Shadow volume 的强项恰恰是 shadow mapping 的短处,像 DOOM3 这种大量
原创
发布博客 2017.05.25 ·
3756 阅读 ·
3 点赞 ·
13 评论 ·
19 收藏

阴影映射总结

阴影映射技术,也就是在场景中产生物体阴影的技术。增加场景的真实感,和空间感。主要思路: 首先,我们以光的位置作为视角进行场景的渲染,由于在程序中设置了深度缓冲,所以被遮挡的物体,或者物体的一部分不会被看到,也就是说看不到的地方,就是场景中物体的阴影。我们可以使用深度缓冲技术,获得每个fragment的深度值(一般为0到1之间),阴影部分的深度值肯定比对应位置的遮挡物的深度值大。获得的同时,把深度值
原创
发布博客 2017.05.10 ·
587 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

OpenGL的矩阵变换详解——有图有真相

OpenGL有个小小的难点,就是矩阵变换的顺序问题。一不小心就会用错,变换后的物体和自己想要的完全不一样。为了自己的理解,也为了帮助别人的理解,我下面对矩阵变换做一个解释。当然,大片大片的文字肯定会让大家看的云里雾里,所以我特意画了一些示意图供大家理解。 首先向大家明确一点,当你在程序中调用矩阵变换函数时,实际执行顺序和调用顺序刚好相反,例如:glm::mat4 trans; tra
原创
发布博客 2017.04.28 ·
6528 阅读 ·
3 点赞 ·
2 评论 ·
14 收藏

C++,关于指针形参”值传递VS地址传递“的问题

先上两个代码片段,也请大家考虑下两个片段运行的结果 第一个代码片段#include <iostream>void test(int* p1){ int b = 6; *p1 = b; std::cout << p1 << "**test**" << *p1 << std::endl;}int main() { int *p = NULL; int a
原创
发布博客 2017.04.26 ·
556 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

BRDF详解

BRDF详解 光照模型主要分为三类,测量模型,经验模型和基于物理的分析模型。 在计算机图形学中介绍的光照模型为经验模型中的Phong模型(也就是本人理解的,根据点距光源的位置,入射角度等信息计算的 反射强度,包括漫反射强度,镜面反射强度),但是Phong模型的光照模型有很强的塑料感,不够真实(如下图一)。所有有人提出了BRDF模型,这是一种基于物理的分析模型,创建的光照模型效果较好(如下图二)
原创
发布博客 2017.04.20 ·
15130 阅读 ·
1 点赞 ·
0 评论 ·
19 收藏
加载更多