Skip to content
  • 首页
  • 留言
  • 关于

Share the joys of programming and technology

ANR崩溃日志查看方法

ANR崩溃日志查看方法

2024年12月19日 liyanliang Comments 0 Comment

=== 参考:https://zhuanlan.zhihu.com/p/378902923

通过数学方法来计算short类型的变量w的低八位x和高八位

通过数学方法来计算short类型的变量w的低八位x和高八位

2024年10月27日 liyanliang Comments 0 Comment

不使用位运算,可以通过数学方法来计算short类型的变量w的低八位x和高八位y。 具体步骤如下: 计算低八位x: x是w对256取模的结果,即x = w % 256。 计算高八位y: 根据等式 x + y * 256 = w; y是w除以256的结果,即y = (w-x) / 256。 下面是C++代码实现: `#include int main() { short w = 773; // 计算低八位 unsigned char x = w % 256; // 计算高八位 unsigned char y = (w-x) / 256; std::cout

3dTiles数据解析

3dTiles数据解析

2024年9月7日 liyanliang Comments 2 comments

1.解析json文件 3dtiles的数据结构: 2.解析b3dm模型 (1)b3dm模型文件时二进制文件,其中包含glTF文件: 当使用tiny_gltf库解析glTF时,需要减去(28byte + featuretable的byte + batchTable的byte ): bool TinyGLTF::ExtractGltfFromMemory(Model *model, std::string *err, std::string *warn, const unsigned char *bytes, unsigned int size, const std::string &base_dir, unsigned int check_sections) { if (size < 28) { if (err) { (*err) = "Too short data size for b3dm Binary."; } return false; } if (bytes[0] == 'b' && bytes[1] == …

Read More Read More

Games101和Games202脑图汇总

Games101和Games202脑图汇总

2023年3月8日 liyanliang Comments 0 Comment

Games101和Games202脑图汇总 11.大场景性能优化 12.加速结构 13.CSM Cascaded Shadow Mapping 14.RSM 反射阴影贴图 15.Light Propagation Volumes 光照传播体积 16.PRT 预计算辐射传输 17.Voxel Global Illumination 体素全局光照 18.Screen-Space Ray Tracing 19.作业 5 光线与三角形相交

LearnOpenGL脑图汇总

LearnOpenGL脑图汇总

2023年3月8日 liyanliang Comments 0 Comment

1.4 纹理 2.4光照贴图 4.1深度测试(Depth Testing) 4.2模版测试 4.3混合 5.1Blinn-Phong 5.3阴影映射 5.3.2点光源阴影 5.4法线贴图 5.7泛光 bloom 5.8延迟着色法 5.9SSAO.png 6.1PBR理论 6.2.1漫反射辐照度 6.2.2镜面反射 IBL 6.IBL总结 7.Computer Shader 8.骨骼动画 8.guest_2020_OIT

IBL计算总结

IBL计算总结

2022年10月30日 liyanliang Comments 0 Comment

https://liyanliangpublic.oss-cn-hongkong.aliyuncs.com/img/03.%E4%B8%80%E5%9B%BE%E8%AF%BB%E6%87%82PBR.png IBL 通常使用(取自现实世界或从3D场景生成的)环境立方体贴图 (Cubemap) ,可以将立方体贴图的每个像素视为光源,然后在渲染方程中直接使用它。 IBL计算主要有两部分组成,一个是光源产生的颜色,另一个是环境产生的颜色。 1.光源产生的颜色 光源产生的颜色计算,直接将数值带入Cook-Torrance反射率方程即可, 2.环境产生的颜色 环境产生的颜色,其实就是天空盒产生的光照,由间接漫反射光和间接镜面光组成。 将立方体贴图的每个纹素视为一个光源。使用一个方向向量 wi 对此立方体贴图进行采样,我们就可以获取该方向上的光照强度。 对于天空盒产生的环境光,应用反射率方程: 将反射率方程拆分成漫反射和镜面反射两个部分: (1)间接漫反射光 间接漫反射计算公式: 计算irradiance,即 给定每个片段的积分球坐标,对半球进行离散采样。 如下图所示,在两层循环内,获取一个球面…

Read More Read More

C++实现一个简单的语言解释器

C++实现一个简单的语言解释器

2022年3月20日 liyanliang Comments 0 Comment

描述: 实现一个简单的语言解释器,支持以下指令 指令格式 描述 mov a v 把数v赋值给a,其中a是变量名称,由不超过10个小写字母组成,v是变量名或者常数 inc a 变量a加1 dec a 变量a减1 jnz a v 如果变量a的值不是0,则相对跳转v条指令。比如-2,向上跳转两个指令 输入保证最多有100个变量,100条语句;执行inc, dec和jnz之前,相应变量一定已经用mov赋值过。 代码实现 关于正则表达式,可以参考: https://www.runoob.com/regexp/regexp-metachar.html

OpenGL-法线贴图(Normal Mapping)

OpenGL-法线贴图(Normal Mapping)

2022年2月3日 liyanliang Comments 0 Comment

背景 在一个平面上如果只有一个法线,整个面的光照强度都是相同的,如果是凹凸的表面,无法表现表面的真是光照效果,所以引入了法线贴图。平面内的每一个fragment都存储一个法线向量,通过法线向量计算切线向量和副切向向量。 已知上向量是表面的法线向量。右和前向量是切线(Tagent)和副切线(Bitangent)向量。下面的图片展示了一个表面的三个向量: 计算原理 计算每个表面的切线和副切线可以参照https://learnopengl-cn.github.io/,主要计算过程如下: 顶点:       V3N3UV2  verts[] =       {           { 0.5f, -0.5f,  0.5f ,  1.0, 0.0, 0.0, 0.0f, 0.0f },           { 0.5f, -0.5f, -0.5f ,  1.0, 0.0, 0.0, 1.0f, 0….

Read More Read More

OpenGL-卡通着色(Cartoon)

OpenGL-卡通着色(Cartoon)

2022年1月30日 liyanliang Comments 0 Comment

原理 茶壶上的色调通过角度的余弦值来选择的,这个角度是指光线和面的法线之间的夹角角度。如果法线和光的夹角比较小,我们使用较亮的色调,随着夹角变大,逐步使用更暗的色调。换句话说,角度余弦值将决定色调的强度。 关于计算,主要根据diffuse的值得区间富赋予不同颜色,使之产生过渡的颜色效果。当diffuse的值大于0.95,使用最亮的颜色,当diffuse的值小于0.25,使用最暗的颜色。 非卡通效果 CartoonShading.vs CartoonShading.fs main.cpp 完整项目代码 https://github.com/mc-liyanliang/OpenGL-Shader/tree/master

OpenGL几何着色器实现贝塞尔曲线

OpenGL几何着色器实现贝塞尔曲线

2022年1月28日 liyanliang Comments 0 Comment

几何着色器 (GS) 是用 GLSL 编写的着色器程序,用于控制基元的处理。几何着色器位于顶点着色器(或Tessellation 阶段)和Vertex Post-Processing阶段之间。 本文实现的是三次方贝塞尔曲线。 P0、P1、P2、P3四个点在平面或在三维空间中定义了三次方贝塞尔曲线。曲线起始于P0走向P1,并从P2的方向来到P3。一般不会经过P1或P2;这两个点只是在那里提供方向资讯。P0和P1之间的间距,决定了曲线在转而趋进P3之前,走向P2方向的“长度有多长”。 曲线的参数形式为: 需要注意的是,显卡会影响曲线的绘制效果,如果使用的是集中显卡,建议切换为独立显卡。 lines_adjacency: line_strip: geometry_shader_bezier.vs geometry_shader_bezier.gs geometry_shader_bezier.fs main.cpp 效果: 完整项目代码: https://github.com/mc-liyanliang/OpenGL-Shader/tree/master

第 1 页,共 6 页123456»

近期文章

  • ANR崩溃日志查看方法
  • 通过数学方法来计算short类型的变量w的低八位x和高八位
  • 3dTiles数据解析
  • Games101和Games202脑图汇总
  • LearnOpenGL脑图汇总
  • IBL计算总结
  • C++实现一个简单的语言解释器
  • OpenGL-法线贴图(Normal Mapping)
  • OpenGL-卡通着色(Cartoon)
  • OpenGL几何着色器实现贝塞尔曲线
  • WinDbg检查内存泄漏
  • OpenGL雾化效果实现-每像素雾化
  • OpenGL实现billboard效果(CPU)
  • 算法:寻找异常数字
  • OpenGL 几何着色器的应用
  • Midas XD-构件详图开发
  • Midas XD-选筋助手开发
  • Civil Designer开发-检测规范自动生成控制截面
  • Civil Designer开发-公路桥梁承载能力检算评定
  • Midas W-满堂支架快速建模助手开发

全站热点

  • C++编写的情人节小程序 (2,082)
  • 提取最小封闭区域 (1,695)
  • Modern OpenGL绘制圆柱体 (1,607)
  • OpenGL开发环境搭建-GLFW与GLAD配置 超详细 (1,464)
  • 截面特性计算程序-附源码 (1,290)
  • OpenGL绘制旋转立方体 (1,109)
  • 判断一个点是否在闭合区域内 (1,032)
  • WordPress分页插件 – WP-PageNavi的使用(替换现有脚本) (948)
  • OpenGL实现billboard效果(CPU) (864)
  • Midas W-满堂支架快速建模助手开发 (837)
  • 从DLL中动态加载一个函数:LoadLibrary和GetProcAddress的使用 (746)
  • Midas XD [错误] 右侧挡土墙的最下端深度必须小于地基的最下端深度 (708)
  • 两跨连续梁影响线绘制-附源码 (686)
  • 土木想往土木软件开发方向发展,应该如何准备 (679)
  • OpenGL几何着色器实现贝塞尔曲线 (664)
  • 通过Spy++抓取窗口以查询对话框id (613)
  • 使用ODA数据库出现 “ODA_ASSUME”: 找不到标识符的错误 (547)
  • #pragma message 编译时提示信息 (527)
  • OpenGL雾化效果实现-每像素雾化 (507)
  • midas XD2020的开发 (475)

分类

  • C# (3)
  • C++ (19)
  • GIS (1)
  • MFC (3)
  • ObjectARX (2)
  • OpenGL (11)
  • Revit开发 (1)
  • 学习笔记 (2)
  • 岩土 (2)
  • 算法 (1)
  • 结构设计 (7)
  • 职场生涯 (1)
  • 计算几何 (3)

归档

  • 2024 年 12 月 (1)
  • 2024 年 10 月 (1)
  • 2024 年 9 月 (1)
  • 2023 年 3 月 (2)
  • 2022 年 10 月 (1)
  • 2022 年 3 月 (1)
  • 2022 年 2 月 (1)
  • 2022 年 1 月 (5)
  • 2021 年 11 月 (7)
  • 2021 年 6 月 (3)
  • 2021 年 5 月 (2)
  • 2021 年 3 月 (2)
  • 2021 年 2 月 (8)
  • 2021 年 1 月 (18)

标签

3dtiles anr Bezier Curves BillBoard C++ CDN CivilDesigner DLL EasyX fog glTF MFC Midas W Midas XD NormalMapping ObjectARX ODA OpenGL OpenXML Open XML PBR revit WinDbg 基坑设计 影响线 截面特性 桥梁 桥梁检测 桥梁设计 算法 计算几何 设计模式

书签

  • 李燕良的CSDN
  • 崔济东的博客
  • C++爱好者博客
  • 陈学伟的博客
  • 贾苏的博客
  • 陈睦锋的博客
  • 孙勇的博客

统计

  • 0
  • 108
  • 74
  • 409
  • 190
  • 268,423
  • 77,616

实时访问地域

© 2025   liyanliang.net Copyright. All Rights Reserved.