osg内核调试,跟踪(不修改内核)

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

在学OSG的时候,有时候想进入OSG内跟踪看其源代码,逐行调试,以查看每步的具体执行情况,或代码中变量的值.由于OSG内核已经编译成了.dll文件,故不能对.cpp的内容进行追踪,只能追踪.h文件里面实现的那些函数.这时,可以继承一个类,把想追踪调用的那些函数复制在你自己的用户程序(非OSG内核)中(当然要加相应的头文件等),这样就可以达到追踪其内核的目的.当然,这只适应简单的东西较少的,如果调用的函数或类较多的话,那可能得另想办法了.

例如,我想追踪自动法线的过程,特别是smooth()中的代码,我先找到osgUtil::SmoothingVisitor文件,自己写一个类继承它:

class CMySmoothVst:public osgUtil::SmoothingVisitor,然后重载一下某个你想追踪的函数

void CSmoothVst::smooth(osg::Geometry& geom)
{
 Geometry::PrimitiveSetList& primitives = geom.getPrimitiveSetList();
    Geometry::PrimitiveSetList::iterator itr;

...复制内核中SmoothingVisitor的代码过来,即可实现对源内核的追踪

}

当然,你也要注意某些变量的初始化,或者构造函数等,如:

class CMySmoothVst:public osgUtil::SmoothingVisitor
{
public:
 CMySmoothVst() :osgUtil::SmoothingVisitor()
 {
  
 }
 void smooth(osg::Geometry& geoset);

};

osgearth_createtile--多视口 osg多视口 阅读详情

相关推荐

OSG球表面点计算

自己画一个球体,球类继承自Geometry,通过addPrimitiveSet(DrawElementsUInt*)来添加三角形和四边形面片.class Geometry_sphere: public osg::Geometry{public:    Geometry_sphere( double dRadius= 1, int iNumPartsLongtitude_half= 13, int iNumPartsLatitude_half= 13 );    void InitVertices();//初

tmljs1988的专栏 4341

OSG-几何体操作

OSG几何体操作

liangfei868的博客 1230

OSG三维渲染引擎编程学习之四十二:“第四章:OSG几何体绘制” 之 “4.7 法向量生成”

OSG三维渲染引擎编程学习;第四章:OSG几何体绘制;4.7 法向量生成

LuckyHanMo的博客 681

osg导入模型时,模型全黑的原因及解决方法分析

在导入飞机模型时,发现模型是黑咕隆咚一片,然后翻阅资料,找到三个可能性。 (一)几何模型没有法线导致 (二)模型放大缩小 (三)没有给模型添加光源

baidu_31788709的博客 3184

OSG中几何体的绘制(二)

OSG中几何体的绘制 简化几何体(osgUtil::Simplifier) 三角网绘制(osgUtil::DelaunayTriangulator) 三角带绘制(osgUtil::TriStripVisitor) 生成顶点法向量(osgUtil::SmoothingVisitor) 代码示例

liangfei868的博客 1408

osg入门系列-生成顶点法向量

#include #include #include #include #include #include #include #include #include #include #include using namespace std; osg::ref_ptr createQuad() {     osg::ref_

GPU全栈博主 3278

OpenSceneGraph 图元绘制

本文介绍了OSG中如何进行图元绘制,如何保存绘制体以及讲解各种绘制方式,图元数组,快速法线生成,图元相关纹理渲染和属性渲染的详解

qq_56109699的博客 1258

记录:几何体操作

摘要:本文介绍了OSGosgUtil库提供的几何体优化工具。Simplifier类通过减少顶点数量简化几何体,支持LOD系统;DelaunayTriangulator用于从离散点生成地形三角网;TriStripVisitor将普通三角网转换为高效的三角带;SmoothingVisitor自动计算顶点法向量。这些工具可组合使用:先构建地形三角网,再简化网格,生成法线,最后转换为三角带,从而在保证视觉效果的同时提升渲染性能。使用时需根据具体场景选择合适的优化策略和参数。

m0_75090050的博客 1037

osg::Geometry(自己绘制的几何体)添加纹理()

osgosg::Geometry(自己绘制的)添加纹理

danshiming的博客 3098

OSG学习:OSG组成(三)——组成模块(续):OSG核心库中的一些类和方法

一、osg库 基本数据类,负责提供基本场景图类:渲染绘制、场景节点管理、图形绘制、渲染状态管理等。包含一些程序所需要的特定功能类,如命令行解析和错误调试信息等。 #include <osg/Node> /*节点类*/ //继承关系:osg::Node-osg::Object-osg::Referenced #include <osg/Node> //类中方法 Nod...

韶光 5343

OSG 模型添加(含自己画的模型,已有模型),对添加的模型做平移 缩放等。

添加已有模型  在osg中同时加入多个模型(A,B,C……),可通过Group->addChild(A)添加。然后再把group添加到viewer中就可以了 添加自定义模型 添加用户自定义模型,我使用函数osg::ref_prt createSceneGraph() 自己画了一个模型,然后通过group->addChild(createSceneGraph().get());添加到场

dota_allstare的专栏 5266

OSG学习:几何对象的绘制(二)——简易房屋

以下内容来自:  1、《OpenSceneGraph三维渲染引擎编程指南》肖鹏 刘更代 徐明亮 清华大学出版社  2、《OpenSceneGraph三维渲染引擎设计与实践》王锐 钱学雷 清华大学出版社 3、自己的总结 OSG中类的继承关系等见OSG学习:OSG组成(二)——场景树。 下载完整工程OSG_4_GeometryHouse 创建C++项目后,首先需要配置OSG环境,具体...

韶光 2648

OSG入门_场景图形与OpenSceneGraph概述01

osgUtil库集合了许多用于场景图形处理和几何修改的工具; osgDB使用插件管理的架构,支持大量常见的2D图形和3D模型文件格式; osgViewer库定义了一些视口类,因而可以将OSG集成到许多视窗设计工具中。

部落阁 1815

Visualize Surface by Delaunay Triangulator

Visualize Surface by Delaunay Triangulator eryar@163.com Abstract. Delaunay Triangulation is the core algorithm for mesh generation. By Delaunay Triangulator you can make a general method to visuali...

weixin_33985679的博客 230

geometry中写入点云 primitiveset和polyintersection发现的一些需要注意的问题

发现基元primitive和基元集primitiveset使用的一些小tips或者tricks,记录一下 工作概述:有N个三维点,知道三维点的位置坐标信息和颜色值,以如下方式存储这些点。这里为了简单说明,假设我们存入了12个在同一平行于屏幕的平面上的点。然后用polyintersection进行框选,希望对框选到的点做进一步处理 osg::ref_ptr geom = new osg:

foreverhehe716的专栏 2124

osg网格划分

创建结构体,用于储存三角形顶点和重心信息 struct TriangleSelf { public: osg::Vec3f _p0; osg::Vec3f _p1; osg::Vec3f _p2; osg::Vec3f _centre; TriangleSelf(osg::Vec3f p0,osg::Vec3f p1,osg::Vec3f p2,osg::Vec3f centre)

cuglxw的专栏 5303

osg学习函数用法addPrimitiveSet +模型操作

addPrimitiveSet函数用来设置绘制的几何图形。 DrawArrays 类的构造函数为osg::DrawArrays::DrawArrays ( GLenum  mode,  GLint  first,  GLsizei  count ) ,mode是几何图形的类型, 有:osg::Box[盒子], osg::Capsule[胶囊形], osg::Composit

成膜的博客 4693

osg 中鼠标拾取线段的端点和中点

//NeartestPointNodeVisitor.h #pragma once #include <osg\Matrix> #include <vector> #include <osg\Node> #include <osg\NodeVisitor> #include <osg\Camera> #include <osg\V...

小胖七少爷的博客 1482

OSG学习:几何体的操作(一)——交互事件、简化几何体

以下内容来自:  1、《OpenSceneGraph三维渲染引擎编程指南》肖鹏 刘更代 徐明亮 清华大学出版社  2、《OpenSceneGraph三维渲染引擎设计与实践》王锐 钱学雷 清华大学出版社 3、自己的总结 下载完整工程OSG_6_OperatingSimplify 创建C++项目后,首先需要配置OSG环境,具体步骤看OSG学习:WIN10系统下OSG+VS2017编译及...

韶光 3522
上一篇: OSG球表面点计算
下一篇: osg源码中的ref_ptr operator unspecified_bool_type() 指向类数据成员的指针&类转化为另一类型(如自定义的C类转化为int)
tmljs1988
博客等级 码龄19年 134粉丝 107原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值