- 博客(269)
- 资源 (32)
- 收藏
- 关注
原创 观察者模式与变种
原始观察者模式:增加一个Message类,用来传递消息外部发送一个message给 [被观察者],[被观察者]发这个message发送给[观察者]代码如下:#include #include using namespace std; class Message;class Observer;class Subject{public: virtua
2018-01-10 11:23:39 573
转载 C++内存布局
书上类继承相关章节到这里就结束了,这里不妨说下C++内存分布结构,我们来看看编译器是怎么处理类成员内存分布的,特别是在继承、虚函数存在的情况下。工欲善其事,必先利其器,我们先用好Visual Studio工具,像下面这样一步一步来: 先选择左侧的C/C++->命令行,然后在其他选项这里写上/d1 reportAllClassLayout,它可以看到
2017-11-30 18:12:34 584
转载 欧拉角的计算
https://stackoverflow.com/questions/15022630/how-to-calculate-the-angle-from-roational-matrixhttp://www.staff.city.ac.uk/~sbbh653/publications/euler.pdf
2017-11-29 14:40:06 5130
转载 透视校正插值
http://www.cnblogs.com/mikewolf2002/archive/2012/11/25/2787480.html透视校正插值 在3D渲染中,输入数据是一些primitive信息,包括顶点位置、颜色、纹理坐标等等。在光栅化阶段,primitive(一般为三角形)被转化成一系列的fragment(或者称为像素),这些fragment接下来要做ps操
2017-09-13 15:28:30 1217
转载 [图形学] B样条曲线 - 原理和C++实现的演示程序(附源码)
http://blog.csdn.net/mahabharata_/article/details/71856907 大二的时候,曾受老师所托,用C++而不是OpenGL去写B样条曲线的教学程序。时隔一年,发现源码找不见了,所以重新写了一遍,也完善了部分功能,顺便发一篇博客分享一下。 这里给出的资源有:两个打包程序、最新版本的源代码。
2017-09-07 17:03:07 17270 5
原创 关于齐次坐标
读http://www.songho.ca/math/homogeneous/homogeneous.html1.问题:两条平行的直线在投影空间中,相交与极远处2.解决的办法:homogeneous坐标,即坐标增加一个分量。3.为何称为homogeneous: 英文单词homogeneous翻译为同质的,同类的。齐次坐标(1,2,1), (2,4,2),
2017-09-02 21:26:13 844
原创 关于Opengl投影矩阵
读 http://www.songho.ca/opengl/gl_projectionmatrix.html0.投影矩阵的功能:将眼睛空间中的坐标点 [图A的视椎体] 映射到 一个(-1, 1)的空间中[图B的立方体]图A 图B1.我们要解的是什么问题:我们要求一个矩阵,使得以下等式成立[结果坐标]
2017-09-02 20:59:34 727
转载 FreeType使用的总结
http://www.cppblog.com/liangairan/archive/2016/09/11/214270.html这里说一下Freetype的关键点,比较基础的在很多文章已经有说明,这里就不详细说明了。FreeType每个字符的加载,可以影响到后面对字符图像的处理。在这里说明一下,字符的加载有多种方式,调用函数是: FT_Load_Char(
2017-09-01 15:50:14 2830
转载 使用FreeType实现矢量字体的粗体、斜体、描边、阴影效果(转载)
前言:Freetype是一个跨平台、开源的字体渲染器,网上很多文章介绍,本人就不啰嗦了。本文重点在于实现文章标题所属的各种效果,不是Freetype的基本使用方法介绍文档,所以对于Freetype不熟悉的同学们请先学习下Freetype的基本用法,才可以使用本文中所提及的方法。正文:用FreeType实现矢量字体的粗体、斜体、描边、阴影效果不是一件容易的事,本人认为皆因Fr
2017-09-01 15:46:06 1666
原创 C++11-->单生产者,单消费者问题
参考上一篇C++11并发编程#include #include #include #include using namespace std;/***经典单消费者,单生产者问题***//***货物类,简单的以一个int数据表示货物***/class Item{public: Item(int i):data(i){} void display(){ cout <<
2017-08-17 14:42:00 660
转载 C++11 相关教程
C++11 中文wiki: https://zh.wikipedia.org/zh-cn/C%2B%2B11C++11 新特性介绍: https://www.kancloud.cn/wangshubo1989/new-characteristics/99704C++11 并发编程指南教程: http://www.cnblogs.com/haippy/p/3284540
2017-08-17 11:24:08 470
转载 Visual Assist X 中使用doxygen的模板注释
http://blog.csdn.net/dhifnoju/article/details/44947213Doxygen是一种开源跨平台的,以类似JavaDoc风格描述的文档系统,完全支持C、C++、Java、Objective-C和IDL语言。使用doxygen方式注释,可以生成HTML及chm等格式的开发文档。 利用assistX工具,可以设置doxygen模板,快
2017-08-05 16:28:18 3464
转载 Visual Studio+VAssistX自动添加注释,函数头注释,文件头注释
转载:http://blog.csdn.net/xzytl60937234/article/details/70455777在VAssistX中为C++提供了比较规范注释模板,用这个注释模板为编写的C++代码添加注释是很便捷的选择,操作起来也很简单,具体方法和步骤如下:1.增加函数头注释之后注释模板中编辑自己需要的注释内容:编辑好注释模板之后将输
2017-08-05 11:19:20 2693 1
转载 透视除法,其次坐标,投影
原文:Explaining Homogeneous Coordinates & Projective Geometryhttp://www.jianshu.com/p/7e701d7bfd793D投影图片来源:Joachim Baecker.术语在大多数3D工作中,我们参照的依据是欧几里得几何学中的三维空间(X, Y, Z)。但在某些情况下,参照投影几何更适用,
2017-07-23 15:23:26 2013
转载 STL的内存管理
SGI STL 的内存管理http://www.cnblogs.com/sld666666/archive/2010/07/01/1769448.html1. 好多废话 在分析完nginx的内存池之后,也想了解一下C++的内存管理,于是就很自然得想到STL。STL是一个重量级的作品,据说当时的出现,完全可以说得上是一个划时代意义的作品。泛型、数据结构和
2017-07-05 18:03:56 506
转载 C++中模板的特化与偏特化
1.引言C++中的模板分为类模板和函数模板,虽然它引进到C++标准中的时间不是很长,但是却得到了广泛的应用,这一点在STL中有着充分的体现。目前,STL在C++社区中得到了广泛的关注、应用和研究。理解和掌握模板是学习、应用和研究以及扩充STL的基础。而STL模板实例中又充斥着大量的模板特化和偏特化。2.模板的定义(1) 类模板定义一个栈的类模板,它可以用来容纳不同的数据类型
2017-07-04 15:36:21 575
原创 STL源码剖析01-allocator
#include #include #include #include using namespace std;template inline T* _allocator(ptrdiff_t size, T*){ std::cout<<"_allocator()"<<std::endl; set_new_handler(0); T* tmp = (T*)(::operator
2017-07-04 14:55:39 389
转载 一个简易的allocator
#include #include #include using namespace::std; template class malloc_allocator{public: typedef T value_type; typedef value_type* pointer; typedef const value_type* const_pointe
2017-06-27 18:11:53 331
转载 C++ allocator
C++ allocatorhttp://www.cnblogs.com/wpcockroach/archive/2012/05/10/2493564.html说一说C++里的allocator。我们知道,C++ STL里定义了很多的容器(containers),每一个容器的第二个模板参数都是allocator类型。比方说在VC10里,vector类的模板声明为: templa
2017-06-23 16:17:10 996
转载 记录
http://www.cnblogs.com/FuTaimeng/p/5572183.htmlhttp://www.cnblogs.com/FuTaimeng/p/5572186.htmlhttp://www.cnblogs.com/FuTaimeng/p/5572190.html
2017-06-21 15:22:18 346
原创 一个神奇的???whatever~~
一个神奇的类,用来封装消息数据,统一数据传递接口,从unity引擎源码拷贝而来。#include #include #include struct MessageData{ int type;private: // Note: on Metro WinRT types cannot be located in union, so don't use union!
2017-06-11 11:16:00 384
转载 c++内存相关
c++内存池http://www.cnblogs.com/dragon2012/p/3847966.html内存管理是 C++最令人切齿痛恨的问题,也是C++最有争议的问题,C++高手从中获得了更好的性能,更大的自由,C++菜鸟的收获则是一遍一遍的检查代码和对 C++的痛恨,但内存管理在C++中无处不在,内存泄漏几乎在每个C++程序中都会发生,因此要想成为C++高手,内存管理一
2017-03-07 20:28:32 570
原创 射线与球体相交检测
原理:参照实时碰撞检测算法技术上的原理:但书上的实现是错的。C++实现: static bool getRaySphereIntersect(vector3d rayOrigin, vector3d rayDir, vector3d sphereCenter, float sphereRadius,
2016-11-17 20:19:14 2388
转载 ZXX43大神实现的软渲染
https://github.com/zxx43/Software-Renderhttp://blog.csdn.net/zxx43/article/details/46755247
2016-08-31 16:43:49 802
原创 yaw roll pitch matrix
http://planning.cs.uiuc.edu/node102.htmlhttp://planning.cs.uiuc.edu/node103.html
2015-10-27 15:08:13 643
原创 <Head First 设计模式>:复合模式:duck
#ifndef __QUAKEABLE_H__#define __QUAKEABLE_H__#include #include using namespace std;class QuackObservable;class Observer{public: Observer(){} virtual~Observer(){} virtual void update(QuackO
2015-05-20 22:14:23 933
原创 <Head First 设计模式>:代理模式:proxy
#ifndef __PROXY_H__#define __PROXY_H__class Subject{public: Subject(){} virtual ~Subject(){} virtual void request(){}};class RealSubject : public Subject{public: RealSubject(){} virtual
2015-05-19 21:25:35 527
原创 <Head First 设计模式>:状态模式:GumballMachine
#ifndef __STATE_H__#define __STATE_H__#include #includeusing namespace std;class GumballMachine;class State{public: State(); virtual ~State(); virtual void insertQuarter(); virtual void
2015-05-06 23:24:52 895
原创 关于A中用到B, B中用到A的问题
//A.h#ifndef AH#define AHclass B;class A {public: B* b; void setB(); ~A();};#endif//B.h#ifndef BH#define BH#include "A.h"class B {public: A a; void haha() {
2015-05-06 23:21:00 596
原创 <Head First 设计模式>:组合模式:Component
#ifndef __COMPONENT_H__#define __COMPONENT_H__#include #include using namespace std;class Component{public: virtual ~Component(){} virtual void add(Component *c) {} virtual void remove(Compo
2015-05-04 21:54:52 598
原创 <Head First 设计模式>:迭代器模式1:Iterator
//今天一口气把这一章前半部分的iterator例子的所有代码写完,涉及到了不少指针的内容,竟然一个bug都没。。。。//Iterator与Menu之间应该不是has a的关系,先这样着吧。#ifndef __MENUITEM_H__#define __MENUITEM_H__#include #include #include using namespace std;clas
2015-04-29 23:07:47 638
原创 <Head First 设计模式>:模板方法模式:Beverage
#ifndef __COFFINEBEVERAGE_H__#define __COFFINEBEVERAGE_H__#include using namespace std;class Beverage{public: Beverage(){} virtual ~Beverage(){} void Prepare() { BoilWater(); Brew(); P
2015-04-28 21:25:16 611
原创 <Head First 设计模式>:适配器模式:Adapter
#ifndef __ADAPTER_H__#define __ADAPTER_H__#include using namespace std;class Duck{public: Duck(){} virtual ~Duck(){} virtual void Quack() { cout << "Duck Quack" << endl; } virtual void F
2015-04-27 21:50:55 706
原创 <Head First 设计模式>:命令模式:Command
#ifndef __COMMAND_H__#define __COMMAND_H__#include #include "Equipment.h"class Command{public: Command(){} virtual ~Command(){} virtual void Execute(){} virtual void Undo(){}};class NoCo
2015-04-26 01:49:51 553
原创 <Head First 设计模式>:单件模式:Singleton
#ifndef __SINGLETON_H__#define __SINGLETON_H__class Singleton{private: static Singleton* instance; Singleton(){}public: static Singleton* getInstance() { if (instance == NULL) { instan
2015-04-22 19:50:35 585
原创 <Head First 设计模式>:工厂模式2:抽象工厂模式--Pizza
#ifndef __INGREDIENT_H__#define __INGREDIENT_H__#include using namespace std;class Dough{};class ThinDough:public Dough{};class BigDough :public Dough{};class CaDough :public Dough{
2015-04-21 23:27:01 744
原创 <Head First 设计模式>:工厂模式1:方法模式--Pizza
#ifndef __PIZZA_H__#define __PIZZA_H__class Pizza{public: Pizza(){} virtual ~Pizza(){} virtual const char* getPizzaName() { return "Pizza"; }};class NYCheesePizza : public Pizza{publ
2015-04-20 23:02:28 621
原创 <Head First 设计模式>:装饰者模式--Beverage
#ifndef __BEVERAGE_H__#define __BEVERAGE_H__#include using namespace std;class Beverage{public: Beverage() { } virtual ~Beverage(){} virtual string getDescripthion() { return "Unknown B
2015-04-19 14:29:25 540
原创 <Head First 设计模式>:观察者模式--Weather
#ifndef __WEATHER_H__#define __WEATHER_H__#include #include using namespace std;class DisplayElement{public: DisplayElement(){} virtual ~DisplayElement(){} virtual void display(){}};clas
2015-04-18 13:32:52 564
Dynamic Parallax Occlusion Mapping with Approximate Soft Shadows
2014-06-17
Practical Parallax Occlusion Mapping for Highly Detailed Surface Rendering
2014-06-17
opengl 超级宝典 第5版 第五版 中文版 蓝宝书
2013-08-13
opengl 超级宝典 第5版 中文版
2013-08-13
Mathematics for 3D Game Programming and Computer Graphics
2013-08-13
opengl 4.0 shading language cookbook 源码
2012-10-29
OpenGL超级宝典 中文 第四版 7_7
2011-09-08
OpenGL超级宝典 中文 第四版 7_5
2011-09-08
OpenGL超级宝典 中文 第四版 7_4
2011-09-08
OpenGL超级宝典 中文 第四版7_2
2011-09-08
OpenGL超级宝典 中文 第四版7_1.pdf
2011-09-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人