![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
图形&渲染
文章平均质量分 78
图形与渲染研发相关的文档
春夜喜雨
好雨知时节.当春乃发生.
展开
-
首次安装使用Cesium
个人随笔 (Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu)首先, 确定cesium使用的nodejs版本查看对应版本可以在cesium-build中查看https://travis-ci.org/AnalyticalGraphicsInc/cesium, 例如nodejs使用10.19.0版本$ node --versionv10.19.0...原创 2020-02-11 18:59:33 · 103 阅读 · 0 评论 -
WebGL从0到1-Part5-其它杂项
1. Prepare canvas and context2. Prepare model data3. Prepare shader4. Prepare texture5. Prepare vertex buffer object6. Render to screen7. Render to texture8. Draw instanced9. Other options原创 2020-12-23 23:27:22 · 171 阅读 · 0 评论 -
WebGL从0到1-Part4-DrawInstanced
draw instance 绘制单例,对于webgl1.0来说,是借助extention来实现高效绘制单例,单例绘制支持非常大量并且高效的绘制出许多同样的物体,像用于形如路灯、汽车模型等,是非常适宜的。原创 2020-12-23 23:20:54 · 512 阅读 · 0 评论 -
WebGL从0到1-Part3-RenderToTexture
WebGL从0到1—旨在在console控制台里,通过写相关的js代码,边写边调试,使用webgl实现一个基本的图形渲染样例,帮助理解webgl。原创 2020-12-19 21:01:49 · 317 阅读 · 1 评论 -
WebGL从0到1-Part2--准备Texture/VBO/Draw
WebGL从0到1—旨在在console控制台里,通过写相关的js代码,边写边调试,使用webgl实现一个基本的图形渲染样例,帮助理解webgl。原创 2020-12-18 21:31:45 · 236 阅读 · 1 评论 -
WebGL从0到1-Part1-准备context/model/shader
WebGL从0到1---旨在在console控制台里,通过写相关的js代码,边写边调试,使用webgl实现一个基本的图形渲染样例,帮助理解webgl。原创 2020-12-17 22:10:14 · 281 阅读 · 0 评论 -
使用js修改图片像素颜色并保存
有时候,我们通常会有修改图片底色,或者让底色透明,也或者颜色交换的类似的需求,特别是我们做界面或类似渲染等功能时可能需求更特殊一些。我们可能清楚像素如何修改,但是使用常用的mspaint又不太好修改,这时可能我们想写个程序来修改,不过用qt/mfc等写还是太重型了,还需要打开vs,编译运行调试,比较麻烦。用js就比较简单了,打开chrome浏览器的开发者工具的console窗口,代码写进来就可原创 2020-08-10 22:59:03 · 3599 阅读 · 3 评论 -
DPI/PPI与屏幕尺寸
DPI:dots per inch 每英寸点数/像素数PPI:pixels per inch 每英寸像素数DPI/PPI描述了像素在单位长度上的分布;屏幕尺寸也是我们经常可以关注到的电子产品的信息,例如手机5.5寸屏,...原创 2020-01-01 23:45:08 · 1954 阅读 · 0 评论 -
使用nvtt转换DDS格式图片
nvtt: nvidia texture toolsnvtt是一个用c++写的库,可以用来做dds格式的转换,比较适用与在C++代码中集成dds转换时使用。原创 2019-11-06 23:42:59 · 1854 阅读 · 0 评论 -
关于图形精度
图形处理的过程中,精度的处理是很重要的:绝对的符合要求通常是一个点;精度处理的意义在于扩大符合要求的范围区间,在某个区间范围内,都认为是符合要求的;从而更贴近实际处理。原创 2017-03-09 22:53:39 · 758 阅读 · 0 评论 -
20150830--随笔
(Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu)最近,忙于适应一个新的工作环境、工作业务:工作状态有了一个很好的转换,现在的工作状态比较好,但工作收获、总结方面相对比较少。简单总结最近工作收获,关于图形的的表示方法:之前接触CAD上的图形表示:1. 点Point2. 线Curve 直线、弧线、圆、椭圆、原创 2015-08-30 22:07:48 · 533 阅读 · 0 评论 -
CImage封装gdiplus的初始化和引用计数
CImage内部封装了一个变量 static CInitGDIPlus s_initGDIPlus; 该变量实现了对gdiplus的初始化和销毁,基于引用计数的方式,实现了多个CImage实例的共享gdiplus的生命周期。 class CInitGDIPlus{public: CInitGDIPlus() throw();原创 2015-06-04 12:52:28 · 1555 阅读 · 0 评论 -
三维视口上文字的正方向
什么是屏幕文字的正方向,通常情况下位于屏幕平面,文字方向从左向右,上方向指向屏幕上方。对于Ogre三维情况来说,就需要考虑视口投影效果了。原创 2015-03-04 13:03:48 · 1023 阅读 · 0 评论 -
[MFC]图形附加alpha透明通道
修改图形并且附加透明通道:要附加透明度,可以要把图片转化为32位png图片,然后设置相应的alpha值:1. 如何把一张图片修改为32位的Png:a) 读取原图片颜色信息b) 创建一张32位并且带透明的位图...原创 2014-11-12 06:49:10 · 1872 阅读 · 0 评论 -
[MFC]透明图展示
一般我们可见的图形RGB三元色,对Alpha通道的话,它不一定会显示到窗体中来。在Windows窗体中要展示一张透明图相对还是比较困难的,1. 例如像windows查看器那样,使透明像素显示查看器底色(近似白色),但对于半透明的图片显示起来效果不是特别好。2. 例如像photoshop那样,使用一张斑点的底图,对于全透明示,显示底图,半透明时和底图颜色混合。原创 2014-11-12 06:43:08 · 1791 阅读 · 0 评论 -
MFC绘图总结-DIB图形绘制
绘制DIB图到到设备,明确一点,DIB设备无关图形向设备CDC上绘的话,肯定是需要经过图形pixel像素转换的,要转换成设备的颜色像素格式...原创 2014-09-18 13:03:07 · 2787 阅读 · 1 评论 -
MFC绘图总结-屏幕截屏,获取DIB/DDB图形Pixel
对当前屏幕Copy,需要获取当前屏幕的HDC,一种是直接从屏幕DC抓原始图。一种是然后使用兼容MemDC进行抓图,然后可以附加图形的相关处理,如调整大小,如把鼠标绘制上去等。...原创 2014-09-18 12:58:31 · 2521 阅读 · 0 评论 -
MFC的CImage图形处理
CImage支持的图片格式有很多,像通常用的jpg, png, bmp,gif等都支持的不错。按照我们常用的图片处理需求,一般是:图片加载、图片指定到控件、图片绘制、图片修改、图片转换、(图片创建)原创 2014-09-14 21:02:00 · 9366 阅读 · 0 评论 -
从ffmpeg了解开源软件
ffmpeg是音视频解码的一个很流行的kaiyuan库,原创 2014-06-17 23:02:59 · 1658 阅读 · 0 评论 -
个人认识+转载:BMP文件结构
先说下自己的感想:对bmp的渐进式了解,分几个过程1. 起初了解的bmp,知道bmp精确存每个点的像素,猜测bmp中存储每个像素点的RGB值2. 后来随着对图片颜色的了解,bmp可能会存单色,也或24位,36位的颜色图;所以也就想当然的认为,可能有信息头标明像素是多少位,然后再存颜色值3. 看了这篇文章后,了解到了bmp的存储格式分4个部分 bitmap-file hea转载 2013-12-02 15:27:52 · 976 阅读 · 0 评论 -
使用mspaint改变图片大小的一个小技巧记录
有些时候,我们截取了一系列图片,放置到某个MFC里面,像ImageList:但由于原始大小的不同,图片被拉长或拉短的变形了,会比较难看。 办法通常有两个:1. 重新按比例截取图片2. 把图片进行处理,以达到比例协调的效果 对于第一种我们就不说了,对于第二种的话,会出现空白区域,我们来看一看:首先我们使用mspaint打开,然后在mspaint里面把图片的大小拉长,或原创 2013-11-18 09:38:18 · 2495 阅读 · 0 评论 -
[转载]Ogre中的内存泄露
转载来源: http://www.blogjava.net/wangle/archive/2007/06/17/124813.html另外也推荐看一下该博主的另一篇:(Ogre中的多窗口渲染方法)http://www.blogjava.net/wangle/archive/2007/06/16/124696.html 刚开始使用Ogre时总是碰到内存泄露,而且往往是一泄千转载 2015-04-03 16:25:24 · 679 阅读 · 0 评论 -
Ogre的Overlay旋转
大多数情况,如果我们需要对Overlay上的内容旋转,我们通过内容本身旋转实现,例如图片材质的旋转等其它变换。但也可能存在少数情况,我们需要对Overlay本身进行旋转。材质的旋转、位移、动画等效果用的比较普遍,这里就不细说了,主要来说明了一下Overlay的旋转处理。原创 2015-04-03 13:15:10 · 1380 阅读 · 0 评论 -
Ogre的材质创建和应用
Ogre材质的创建可以通过脚本或代码创建:层级 Material -〉technique -> pass -> texture_unitOgre的材质具有动态的效果,提供有animation,rotate,scroll,mirror等效果Ogre中的材质可以在mesh创建时指定材质,也可以在entiry创建时重新制定材质。原创 2015-04-01 23:41:33 · 2670 阅读 · 0 评论 -
Ogre-三维窗口上添加导航小窗口
要实现在Ogre-三维窗口上添加导航小窗口有几种方法,一种是使用Ogre多视口实现,一种是使用Windows的透明窗口实现一种是使用Ogre的Overlay实现一种是使用Ogre的Rectangle2D实现原创 2015-03-30 17:53:23 · 10495 阅读 · 0 评论 -
Matrix矩阵计算
矩阵计算是图形学上的一个基础处理a) 向量的Matrix矩阵变换b) Matrix的矩阵乘法c) Matrix求逆矩阵原创 2015-03-27 09:50:15 · 3805 阅读 · 0 评论 -
Ogre输出屏幕2d文字(Overlay文字)
Ogre文字的生成方法分为:配置文件创建 和 程序创建两中. 两者异曲同工, 都是实现类似定义结构首先文字定义说明, 然后定义文字2d层,在层中添加container,再加TextArea.2d-overlay->container->container/element其中配置文件配置比较灵活易于理解原创 2014-11-09 23:47:21 · 2615 阅读 · 0 评论 -
Ogre的setSkyPlane/setSkyDome/setSkyBox
setSkyPlane: 把一张图设置到天空面上,仅设置顶面setSkyDome: 把一张图拟合成立体图,上下左右前后都是这一张图拟合的效果setSkyBox: 把六张图拟合成立体图,上下左右前后都是这六张图拟合的效果原创 2014-09-25 18:22:54 · 1394 阅读 · 0 评论 -
Ogre笔记-Ogre基本调用结构
1. 首层Ogre::Root CreateOgre::Root m_pRoot = new Ogre::Root("plugins.cfg");原创 2014-09-21 20:30:03 · 973 阅读 · 0 评论 -
论LOD可见距离与可见像素数
对于海量的三维物体的查看而言,必不可少的是LOD(Levels of Detail)控制,通过LOD控制,来减少视角下察看的总渲染数据量,从而让海量数据的察看成为可能。原创 2020-09-14 00:29:54 · 2004 阅读 · 0 评论 -
关于粒子的认识
粒子Atoms通常作为微小的物体大量出现,在渲染时模拟一些特殊效果,例如烟雾、火花、爆炸、喷泉、雨雪雾天气等。粒子发射指标通常粒子的发射的指标有:初始位置position粒子位置单位变化量vec生命周期life过程中管理粒子的:当前位置位置单位变化量更新剩余生命周期这样每个粒子随着时间的变化,基于参数调整单位变化量,不断的更新自身的位置,并根据生命周期情况在生命周期结束后结束自身。原创 2020-08-26 23:51:46 · 336 阅读 · 0 评论 -
关于dFdx/dFdy的实现
dFdx/dFdy我们经常称它为偏导,它的实现较强的依赖了GPU的SIMT工作方式。原创 2020-06-03 23:38:28 · 1699 阅读 · 2 评论 -
3D程序性能优化思路浅析
3D程序的性能消耗发生在:顶点相关数据和纹理数据加载入内存把大量的模型数据顶点相关数据和纹理数据从磁盘或网络加载到内存中,3D程序中,这块的数据量是相当大的,可能会有上GBytes的数据需要加载到内存中。显示数据从内存传输到显卡中显卡提供了接口,传输framebuffer, 传输texture, 传输shader, 把加载到的内存中数据传递给显卡。显卡渲染pipeline执行,执行相关原创 2020-05-17 12:42:38 · 580 阅读 · 0 评论 -
纹理压缩格式DXT/PVR/ETC编码
DXT格式常位于的.DDS文件中,常见的格式有DXT1, DXT3, DXT5:也即BC1/BC2/BC3。DXT1表达RGB色,不带mipmap情况,平均4Bit/像素-4BPP;DXT3/DXT5表达RGBA色,8BPP。原创 2020-05-07 21:31:54 · 3497 阅读 · 0 评论 -
再议旋转四元数
(Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu)之前写过一篇四元数的,当理解的还不深,经过一段时间,再次回顾,认识有了一些新的变化,记录如下四元数四元数本身是复数的一种,下面是多元数的表达一元数:f = m二元数:f = ai + m;三元数:f = ai + bj + m;四元数:f = ai + bj + ck + m;旋转四元数...原创 2019-12-05 21:55:23 · 722 阅读 · 1 评论 -
TRS复合矩阵的拆解
按照Translate, Rotate, Scale顺序复合的矩阵,我们可以对它进行拆解,拆解出原始的Translate, Rotate, Scale矩阵。原创 2019-11-24 18:12:16 · 2596 阅读 · 4 评论 -
Normal法向的变换矩阵求解
当我们已知了顶点的变换矩阵ModelMatrix, 对Normal法向进行求解: 首先我们考虑下,哪些基本操作能够带来normal的变化: translate平移不会带来normal的变化,normal的指向不随平移调整原创 2019-11-02 00:30:40 · 850 阅读 · 0 评论 -
CubeMap天空盒的方向与调整
参考:https://learnopengl.com/Advanced-OpenGL/Cubemaps参考:https://www.jianshu.com/p/91c367d732b3(Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu)1. 构造CubeMap对于CubeMap来说,构造一个完整的Cubemap的基本代码为:a. 先创建一个纹理,...原创 2019-10-17 00:24:42 · 2719 阅读 · 0 评论 -
Opengl-DepthBuffer存储与还原
在某个场景下, 我们期望在渲染时, 保存当前的深度缓冲区, 然后再开始下一步渲染, 之后再把深度缓冲区还原, 还原后进行下一步.时序是:1. 保存当前深度缓冲区2. 渲染某个场景, 该场景会使用和修改深度缓冲区3. 恢复保存的深度缓冲区原创 2019-09-07 21:55:59 · 1556 阅读 · 0 评论 -
Webgl-Render loop渲染循环的实现
在web端上,渲染循环的关键调用函数是:requestAnimationFrame函数的说明:该函数提供一个回调处理,承诺在在下一帧重绘之前调用传入回调函数原创 2019-08-30 23:41:26 · 935 阅读 · 0 评论