最近要给之前做的动力学项目加上注释, 寻思着有没有什么看起来比较优雅的注释风格, 在腾讯云社区找到一篇不错的相关文章, 特此提炼总结一下~
作者: CQY
解决GitHub访问和下载慢的问题
今天想在github上clone一个repo下来, 但无奈下载速度奇慢, 在CSDN上看到解决方案, 亲测有效!
向Win32 GUI程序添加控制I/O
最近使用D3D11做开小车的网易-1任务, 程序的入口函数是WinMain函数, 无法使用cout进行调试, 蓝瘦香菇, 使用常规的项目属性-配置属性-链接器-系统-子系统-控制台大法依旧无果, 终于在stackoverflow觅得良方, 撒花✿✿ヽ(°▽°)ノ✿
相对路径转绝对路径
整理代码的时候需要把用到的模型文件都放到工程目录下, 但自己程序中使用的读取模型的函数都需要绝对路径, 因此需要先有相对路径转绝对路径的操作.
OpenGL中的glDrawXXX函数阻塞问题
首先抛出结论: 大多数GL函数在使用时会被缓冲, 并在以后实际执行. 这意味着不能将CPU和GPU视为两个处理器同时工作. 通常情况下, CPU会执行一系列缓存的GL函数, 并且一旦将它们传递给GPU, 它就会执行它们. 这意味着无法可靠地控制执行特定GL功能所需的时间.
D3D11中的抗锯齿设置
在D3D11中, 通常通过设置交换链和深度模版缓冲中的DXGI_SAMPLE_DESC, 来启动硬件反锯齿功能.
typedef struct DXGI_SAMPLE_DESC
{ UINT Count;
UINT Quality; }
DXGI_SAMPLE_DESC, *LPDXGI_SAMPLE_DESC;
在非空的文件夹中创建git仓库
记录一下比较有用的技巧,因为经常想要在一个非空的文件夹中创建git仓库,但每次都是自己搞了个空的文件夹去创建git仓库,然后再把东西挪过来,显得很不优雅……
CMake添加第三方库小结
想要通过CMake引入OpenMesh和Assimp, 但还是折腾了差不多一天, 终于搞掂了, 特此总结一下下~
D3D11绘制三角形小坑
开始做网易入职的第二个任务, 入坑D3D11……
一开始按照教程发现死活画不出三角形来, 后来发现自己创建了深度缓冲, 在render的时候需要先清除才行. 代码很简单, 一行即可:
immediateContext->ClearDepthStencilView(depthStencilView, D3D11_CLEAR_DEPTH | D3D11_CLEAR_STENCIL, 1.0f, 0);
glm transform矩阵小坑
稍稍记录一下踩过的小坑, 一般对一个物体进行变换, 应该是先缩放, 再旋转, 最后才平移. 而利用glm库计算transform矩阵的时候, 应该注意代码顺序要与变换顺序相反, 如:
transformMatrix = glm::translate(transformMatrix, glm::vec3((p1.x+p2.x)/2, (p1.y+p2.y)/2, (p1.z+p2.z)/2)); transformMatrix = glm::rotate(transformMatrix, rotateTheta, rotateAxis); transformMatrix = glm::scale(transformMatrix, glm::vec3(1.0, radius / 2.0, 1.0));
猜想这是由于glm内部是将新的变换矩阵右乘原来的变换矩阵导致的额……