- 博客(19)
- 资源 (1)
- 收藏
- 关注
原创 lambertian、diffuse、matte的关系
在CG里面,这三个词经常碰到,而且有时候到底哪个是干嘛的经常也是搞不清楚,也就是它们三个之间的关系没清楚。 我觉得下面这句话讲的很清楚,但是我忘记在哪看到的了-_-。 Lambertian reflectance is the property that defines an ideal "matte" or diffusely reflecting surface.
2017-06-30 14:00:43 2711
原创 DL学习笔记(1)-Deep Learning是一种“暴力碾压”的方法吗?
答:不全对。不要忽略了“Deep”——层数。 如果真的仅仅是暴力的话,那就不需要很深的层,就一层,但是这一层很长,很多单元。但这个performance实际上是没有相同参数下的多层更短的网络好。 Deep→Modularization→Less training data. 并不是训练数据越多就越好,就是因为现在data不多,所以需要deep leaning。
2017-06-30 13:49:15 385
原创 C#中的继承规则
1.继承可传递。C从B派生、B从A派生,则C不仅继承了B中的成员,同时也获得了A中的成员.Object类为所有类的基类。2.派生类是对基类的扩展,可以添加新成员,但不能除去已经继承的成员的定义。3.构造和析构函数不能被继承。除此之外的其他成员,不论它们定义了怎样的访问方式都能被继承。基类中成员的访问方式只能决定派生类能否访问他们。4.如果派生类中定义了一成员,其名字与基类中某成员同名,
2017-06-30 13:40:37 770 1
原创 Intel和ARM
intel是X86结构,用的是CISC复杂指令集,而ARM用的是自己的ARM架构,核心是精简指令集(RISC)。 其实RISC和CISC的区别很明显。 RISC牺牲了功能性,而提高了其单位命令的运行效率。 CISC能处理的信息种类更多,但是相对来说,单位性能就下降了。 所以,家用游戏机的CPU逗是RISC,因为只运行游戏,不需要处理其他的程序,
2017-06-30 09:29:15 1743
原创 GLSL(6)分别使用可编程渲染管线编程和固定渲染管线编程来画点(理解VAO&VBO)
在opengl中分别使用可编程渲染管线编程和固定渲染管线编程来画点(理解VAO&VBO)
2017-06-27 16:47:12 1559
原创 C++纯虚函数和Java中的抽象函数区别
一直我对c++纯虚函数的理解有个误区:纯虚函数是不能给出定义的。果然是学艺不精。c++中的纯虚函数和java中的抽象函数很类似,我把相关概念搞混淆了,这里总结一下:java中的抽象函数是只有函数声明,没有方法体。而c++中的纯虚函数是可以有方法体,也就是说是可以给出定义的,并且,在c++中,子类还可以调用父类的纯虚函数-_-。对于用习惯了java而对c++认识比较少的同学,可能看到这里有点吃惊。所
2017-06-24 11:18:49 1955
原创 c++之const小结-使用注意
尽可能的使用const。1. 尽量的以const、enum、inline替换掉#define。#define是预处理,对于形似函数的宏,最好改用inline函数替换#define,即“宁可以编译器替换预处理器”。因为#define不被视为语言的一部分,那正是它的问题所在。2. 注意,下面两种写法意义相同:void f1( const Widget* pw);void f1( Wi
2017-06-24 10:27:00 330
原创 GLSL(5)-compute shader小结
感觉和cuda的基本概念是一样的只是叫法不同,cuda中称block,compute shader中同等的概念是work group。一个block中分多个线程,这边就是一个work group中分多个invocation。同时block都有一维二维三维的概念,基本理论模型都是一样的。cuda中计算线程索引的方法和compute shader中计算invocation中的也一样。然后还有很重要
2017-06-23 20:09:58 4603
原创 GLSL(4)关于layout和uniform使用的个人小结
简而言之。GLSL中,layout标签注明的变量是初始化一定要的,通常这个初始化过程放在initScene()函数(同等作用的函数)中,就是走:glGenBuffer()、glBindBuffer()、glBufferData()..这几个过程。而GLSL中,uniform类型的bain两,是不走上面这几个流程的,也就是在opengl这边设置shader中的uniform类型变量的时候,不
2017-06-23 20:01:55 5823
原创 GLSL(3)-在opengl中初始化Uniform Block 的流程-小结
opengl中初始化着色器中uniiform block的流程总结。
2017-06-22 09:46:28 1602
原创 VS2013+GLFW配置--填坑!
给新电脑配置开发环境,当然上VS2013+GLFW。 不要看那些啥cmake,用不上,直接去官网下载GLFW二进制文件:点击打开链接,记得下载32位的! 然后呢,下载完了, 进入到下载到的这个东西的目录中,将include中的GLFW文件夹拷贝到VS安装目录下的VC/include中 若使用VS2013,则将lib-vc201
2017-06-20 20:48:28 1392 2
原创 GLSL(2)记录-使用uniform block
#include #include"shadertool.h"#include"glm/glm.hpp"//using namespace std;#include"glm/gtc/matrix_transform.hpp"using glm::mat4;using glm::vec3;#define PI 3.1415926GLuint vaoHandle;GLuint
2017-06-18 21:27:37 536
原创 GLSL记录(1)-实时旋转的三角形
main.cpp:#include #include"shadertool.h"#include"glm/glm.hpp"//using namespace std;#include"glm/gtc/matrix_transform.hpp"using glm::mat4;using glm::vec3;#define PI 3.1415926GLuint vaoHand
2017-06-18 13:40:05 1244
原创 记录opengl运行窗口全白色
学习GLSL。 看书写代码,把书上的部分代码敲上去后,发现运行窗口全是白色。找了半天,原来是 glClear( GL_COLOR_BUFFER_BIT )这里有错,因为我之前的代码还清除了深度缓存的,也就是加上了" | GL_DEPTH_BUFFER_BIT",于是,我重新加上后,三角形出现了(正确结果)。但是为什么不清除深度缓存就会这样呢??不科学啊。仔细看代码,原来我在i
2017-06-18 13:24:27 4442 1
原创 ubuntu提示opengl版本过低-Gallium0.4 on llvmpipe(llvm 3.8 128bits)
在ubuntu14.04下写GLSL,需要GLSL 4.0 以上的支持,但是编译运行的时候,提示我opengl和glsl版本过低, 只支持1.3。我xx,,我用的卡是Geforce GTX560TI,应该支持4.0以上。为啥现在提示我不支持呢?? 原来是我系统现在使用的不是N卡驱动: 解决办法:点右下脚的安装更新-设置-附加驱动,选第一个N卡驱动,安装,重启,解决!
2017-06-10 19:44:55 15674 2
原创 Ubuntu下在QTCreator中使用glew.h
今天在ubuntu下写GLSL,然后要加载shader,看教程需要使用到glew,于是我添加这个头文件,但是编译不通过,因为总是给我提示glew的各种函数找不到,然后我看看我的pro文件里面已经加入了GL.so,而且GL文件夹中有glew.h这个头文件,这就尴尬了,估计是还需要加载一个glew.so,我在计算机中搜了一下,还真有,试试,于是在pro文件中,加入下面代码来引入glew.so: LIB
2017-06-10 12:12:33 1442
原创 Java深拷贝
@Override public Object clone() { //深拷贝 KinderGardenStu kinderGardenStu = null; try { kinderGardenStu = (KinderGardenStu)super.clone(); //key part //可以这么理解,就是如果我不复制引用里的数据的话,它就还
2017-06-05 20:32:23 264
原创 浅拷贝和Clone方法
要实现对象间的Clone操作,首先,自定义类是没有默认的Clone方法的,必须要继承Cloneable这个接口来重载Clone方法,如下:public class KinderGardenStu extends Student implements GamePlayable,Cloneable{ @Override public KinderGardenStu clone() th
2017-06-05 20:17:35 536
转载 C/C++生成可执行文件过程
[转载]C/C++生成可执行文件过程编译的概念:编译程序读取源程序(字符流),对之进行词法和语法的分析,将高级语言指令转换为功能等效的汇编代码,再由汇编程序转换为机器语言,并且按照操作系统对可执行文件格式的要求链接生成可执行程序。编译的完整过程:C源程序-->预编译处理(.c)-->编译、优化程序(.asm、.s)-->汇编程序(.obj、.o、.a)-->链接程序(.
2017-06-03 15:37:14 1166
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人