CUDA学习笔记 GPU架构 GPU围绕流式多处理器(SM)的可扩展阵列搭建,每个GPU有多个SM,每个SM支持数百个线程并发执行.目前Nvidia推出了6种GPU架构(按时间顺序,详见下图):Fermi.Kepler.Maxwell.Pascal.Volta和Turing,每种架构的SM构成不尽相同. 以Fermi架构为例,SM通常包含以下组成部分: 32个CUDA核心,每核心由一整数算术逻辑单元ALU和一浮点运算单元FPU组成 共享内存/L1Cache 寄存器 加载/存储单元 特殊功能单元S…
入门 启动Shell 在cmd中输入命令”erl”,百分号(%)表示一个注释的开始,从百分号开始到这行结束的所有文本都被看做是注释. 一个完整的命令需要以一个句点和一个回车结束. 退出erlang的命令是q(). 命令 f() 会让 shell释放它所绑定过的所有变量.即所有的变量都编程自由变量. 变量 所有的变量必须以大写字母开头. Eralng的变量只能被赋一次值,第二次赋值会出现匹配失败的错误.一个变量如果含有一个被赋予的值,就称为绑定变量,否则称为自由变量.一开始所有变量都是自由的. 在…
|View |Creating and Configuring View Objects |Creating and Managing a View Hierarchy |Adjusting the Size and Position of Views at Runtime |Defining a Custom View |Animation |What Can Be Animated? |Animating Property Changes in a View |Creating Animat…
1.关于内联函数(inline)      借用一下书中的例子. inline int fac(int n) { ) ? :n*fac(n-); }      inline描述符给编译器一个提示,要求它试着把所有对fac()的调用在线化,也就是假如一个编译器够聪明的话,它会把对fac(6)生成常数720,然后直接代替代码中fac(6)的位置.不过这要视函数的复杂程度而言,假如递归复杂,或是有大量循环,或者代码复杂,或者并不依赖输入的内联函数(这个不知道为什么,书上有,先标记着),能否在线化就要看…
1.关于strcpy函数. 书中说c风格的字符串尽量少用,strcpy这样的函数应该也要少用.这里讲这个函数主要是要通过本章课后练习第十题来讲一下前面提及的要点.巩固一下前几章的知识.写了一段,本来感觉自己写得不错了,结果和网上的一笔感觉还是差很多,也学到了很多,下面贴上网址供大家看看.http://blog.csdn.net/cazicaquw/article/details/7044602. 里面讲得很详细,很多细节对于我们初学者来说也是很有用的.但感觉他写得太繁琐了,其实从指针到bool的…
1.关于输出指向字符的指针的值. 现在定义,char c='a',char* pc=&c.在C中,输出该值只需要printf("%p\n",pc);而在C++中,如果cout<<pc<<endl;则会出现奇怪的一串字符,怎么回事呢.由于C++标准库中I/)类对<<操作符重载,因此在遇到字符型指针时会将其当作字符串名来处理,输出指针所指的字符串.所以我们可以将其先转化为void*,再输出. cout << static_cast&l…
1.关于main 函数中的 return 0 C99标准中,main 函数的返回值类型必须是 int ,这样返回值才能传递给程序的激活者(如操作系统).如果 main 函数的最后没有写 return 语句的话,C99 规定编译器要自动在生成的目标文件中(如 exe 文件)加入return 0; ,表示程序正常退出.尽管如此有人会为了移植性在main函数后面加上return 0,这是为了照顾老版本的编译器,如vc6.0等,不过现在过了这么多年了,应该没有人会用这么老的编译器了吧(也许不一定),所以…
在图形学中,数学是不可或缺的一部分,所以本书最开始的部分就是数学知识的复习.在图形学中,最常用的是矢量和矩阵,所以我根据前面三个章节的数学知识,总结一下数学知识. 一.矢量 数学中的矢量,拥有方向和长度.其实矢量和点在坐标系中的表示完全一致(笛卡尔坐标系为准),区分矢量和点的关键,我觉得就是做平移.点是不能用平移操作来保证一致的,比如点A(1,2,3)经过平移矢量(1,2,3)后就是B(2,4,6),此时就是一个新的点.但是矢量经过相同平移操作后,还是矢量(1,2,3),这是因为矢量表示的是 v…
中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 moveit是书的最后一章,由于对机械臂完全不知,看不懂. Learning ROS forRobotics Programming Second Edition学习笔记(十)indigo Gazebo rviz slam navigation --$ roslaunchchapter9_tutorials chapter9_configuration_…
中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS forRobotics Programming Second Edition学习笔记(八)indigo rviz gazebo indigo PCL例子以及xtionpro live pcl --$ roslaunchrobot1_description display.launch model:="`rospack findr…
中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS forRobotics Programming Second Edition学习笔记(七)indigo PCL xtion pro live indigo PCL例子以及xtionpro live pcl --$ rosrunchapter6_tutorials pcl_create --$ rviz --$ roscdchap…
中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Programming Second Edition学习笔记(六) indigo xtion pro live 安装: 参考:http://wiki.ros.org/openni_camera --$: sudo apt-get install ros-indigo-openni2* ros-indig…
中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Programming Second Edition学习笔记(五) indigo computer vision FireWire IEEE1394 cameras无USB cameras--sudo apt-get install ros-indigo-usb-cam--roslaunch chapt…
中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Programming Second Edition学习笔记(四) indigo devices 手柄北通输入有信号,可以正常使用,但是无法正常使用,没有罗技的,没有试过.激光距离传感器无hokuyo,用rplidar.Kinect没有使用.Xsens MTi等其余传感器,以及Arduino设备均无使用…
中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Programming Second Edition学习笔记(三) 补充 hector_slam 记录一下rplidar传感器在ROS(indigo)配置使用等. Indigo集成的rplidar基本功能驱动等. 参考文档 http://wiki.ros.org/rplidar 需要下载的包和版本号hy…
中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Programming Second Edition学习笔记(三) indigo rplidar rviz slam 记录一下rplidar传感器在ROS(indigo)配置使用等. Indigo集成的rplidar基本功能驱动等. ×基本安装× 通过下面命令安装: --sudo apt-get ins…
中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Programming Second Edition学习笔记(二) indigo tools 笔记一记录了一些常用的基本命令(cmd),笔记二介绍一些可视化的编译调试工具(tool). --roscore --roslaunch chapter2_tutorials chapter2.launch --…
中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Programming Second Edition学习笔记(一) indigo v-rep 安装系统ubuntu14.04和ros indigo. 注意:环境配置. ROS体系结构与概念 注意理解: 启动核,roscore. 文件系统层,包,包清单,消息,服务,工作空间等. 运算图层,节点,主,消息,…
Parallel Programming for FPGAs 学习笔记(1)…
### Programming Entity Framework-dbContext 学习笔记 第五章 将图表添加到Context中的方式及容易出现的错误 方法 结果 警告 Add Root 图标中的所有实体将被跟踪,并标记为Added SaveChage 将试图将所有实体插入数据库,即使数据库中已存在该实体 Attach Root 所有实体将被跟踪并标记为Unchanged 新添加的实体将不会被插入数据库,并容易造成主键冲突 Add or Attach Root,then paint stat…
原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 全书总结 本系列文章中可能有很多翻译有问题或者错误的地方:并且有些章节描述的也不太清晰. 所以请务必结合原书学习!!! ^ @ ^ 优化总结 总结书中提到的所有需要优化的细节 第一章:向量代数 1.向量的基本运算: 2.DX数学库中向量的接口. 第二章:矩阵代数 1.矩阵的定义,基本计算和特性: 2.矩阵的行列式,伴随矩阵和逆矩阵: 3.DX数学库中矩阵的接口. 第三…
原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- Direct12优化 第一章:向量代数 1.向量计算的时候,使用XMVECTOR(可以利用SIMD优点):类成员变量使用XMFLOAT2 (2D),XMFLOAT3 (3D),和XMFLOAT4 (4D) . 2.向函数传递参数的时候(XMVECTOR可以直接传递到SSE/SSE2)前三个参数类型要定义为FXMVECTOR: 第四个要定义为GXMVECTOR: 第五个…
原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第二十三章:角色动画 学习目标 熟悉蒙皮动画的术语: 学习网格层级变换在数学理论,以及如何遍历基于树结构的网格层级: 理解顶点混合的想法以及数学理论: 学习如何从文件加载动画数据: 学习如何在D3D中实现角色动画. 1 框架的层级结构 1.1 数学公式 例如,有下面的结构: 每根子骨骼的坐标系都可以跟父骨骼关联,第一根骨骼与世界坐标系关联: 如果矩阵A0是第一根骨骼的…
原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第二十二章:四元数(QUATERNIONS) 学习目标 回顾复数,以及复数相乘如何在平面上表达旋转: 理解四元数以及它的运算: 理解单位四元数如何表达3D旋转: 学习如何转换旋转变量的表达: 学习如何对单位四元数线性差值,并且理解它等价于几何上的3D角度差值: 熟悉DirectX Math库中的四元数类和操作. 1 回顾复数 四元数可以看做是一个复数,所以我们先要回顾…
原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第二十一章:环境光遮蔽(AMBIENT OCCLUSION) 学习目标 熟悉环境光遮蔽的基本思路,以及通过光线跟踪的实现方法: 学习如何在屏幕坐标系下实现实时模拟的环境光遮蔽. 1 通过光线追踪实现的环境光遮蔽 其中一种估算点P遮蔽的方法是光线跟踪.我们随机跟踪点P半圆内的光线,然后查看和网格相交的光线.如果跟踪了N条光线,相交了h条,那么点P的遮蔽值为: 只有交点q…
原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第二十章:阴影贴图 本章介绍一种在游戏和应用中,模拟动态阴影的基本阴影贴图算法:还有一些更复杂和效果更好的阴影算法,比如cascading shadow maps[Engel06],都是基于基本阴影算法扩展出来的. 学习目标 熟悉基本阴影贴图算法: 学习投射纹理如何工作: 找到正交投射: 理解阴影贴图锯齿问题和一些常用的修复它们的策略. 1 渲染场景深度 阴影贴图算法…
原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第十九章:法线贴图 学习目标 理解为什么需要法线贴图: 学习法线贴图如何保存: 学习法线贴图如何创建: 学习法线贴图中的法向量的坐标系统是如何与物体空间的三角形的坐标系统关联的: 学习如何在顶点和像素着色器中实现法线贴图. 1 使用法线贴图的原因 找到一种方法在光滑的平面上,显示出更多的细节(比如粗糙的砖块). 如果使用曲面细分是可以增加实际的细节的,但是我们还是需要…
原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第十八章:立方体贴图 代码工程地址: https://github.com/jiabaodan/Direct12BookReadingNotes 学习目标 学习什么是立方体贴图,并且如何在HLSL中对它们采样: 如何使用DX的纹理工具创建立方体贴图: 学习如何用立方体贴图来模仿反射: 学习如何使用立方体贴图对球体采样来模拟一个天空和远处的山. 1 立方体纹理映射 在D…
原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第十七章:拾取 代码工程地址: https://github.com/jiabaodan/Direct12BookReadingNotes 学习目标 学习如何实现拾取算法,我们将它分解为下面几个步骤: 当点击屏幕上s点时,计算对应的透视窗口上的点p: 在视景坐标系下计算拾取射线: 将射线和要进行检测的模型变换到同一个坐标系下: 检测模型是否和射线相交,取深度值最小的那…
原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第十六章:实例化和截头锥体裁切 代码工程地址: https://github.com/jiabaodan/Direct12BookReadingNotes 学习目标 学习如何实现硬件实例化: 熟悉包围体,学习如何创建和使用它们: 学习如何实现截头锥体剔除. 1 硬件实例化 给每个实例都复制一份顶点和索引是非常浪费的,所以我们只保存一份物体在局部坐标系下的数据,然后使用…