当前位置: 首页 > news >正文

西安网站建设软件营销型网站网站建设

西安网站建设软件,营销型网站网站建设,网站建设上传图片不显示,网站代码有哪些系列文章 一、逆向工程 Sketchup 逆向工程#xff08;一#xff09;破解.skp文件数据结构 Sketchup 逆向工程#xff08;二#xff09;分析三维模型数据结构 Sketchup 逆向工程#xff08;三#xff09;软件逆向工程从何处入手 Sketchup 逆向工程#xff08;四#xf…系列文章 一、逆向工程 Sketchup 逆向工程一破解.skp文件数据结构 Sketchup 逆向工程二分析三维模型数据结构 Sketchup 逆向工程三软件逆向工程从何处入手 Sketchup 逆向工程四破解的乐趣 钩子 外挂 代码注入 二、OpenGL渲染模型 PythonOpenGL绘制3D模型一Python 和 PyQt环境搭建 PythonOpenGL绘制3D模型二程序框架PyQt5 PythonOpenGL绘制3D模型三程序框架PyQt6 PythonOpenGL绘制3D模型四绘制线段 PythonOpenGL绘制3D模型五绘制三角型 PythonOpenGL绘制3D模型六材质文件载入和贴图映射 PythonOpenGL绘制3D模型七制作3dsmax导出插件 PythonOpenGL绘制3D模型八绘制插件导出的插件 PythonOpenGL绘制3D模型九完善插件功能: 矩阵,材质,法线 PythonOpenGL 杂谈一 三、成果 疫情期间关在家里实在没事干破解了Sketchup成功做出可以读取并显示.skp文件的程序SuViewer 前言 Sketchup作为目前设计院最为流行的设计软件(非工程制图软件深受设计师的喜爱软件小巧而功能强大有不少为之开发的插件应运而生不过呢关于底层数据结构和工作原理相关的文章少之又少本文意在填补一下这方面的空缺通过逆向软件分析展示软件内部奥秘。本文用到的工具IDA ProImmunity DebuggerVisual Studio 逆向工程三件套数据结构属于知识产权的核心机密 文章目录 系列文章前言一、介绍二、使用方法三、插件源代码 系列文章预告 一、介绍 3dsmax支持python2.7所以同样可以用python编写插件不需要编译安装一键执行非常方便 编写插件是个比较复杂的过程涉及3dsmax中模型、材质、贴图、等数据的组织结构以后专门用一个专题详细介绍有兴趣的同学可以仔细读一下插件源代码 插件和程序需要交换文件数据格式这里定义一个CModel数据保存使用了python内置的pickle也是一键保存在程序里一键载入不需要专门编写读写文件的代码 二、使用方法 1、下载源代码保存到c:/temp/maxplus_export_sel_model.py 2、打开3dsmax菜单 》Scripting 》 MAXScript Listener 3、运行 python.ExecuteFile “C:/temp/maxplus_export_sel_model.py” 如果看到如下输出说明已经导出成功 find INode: Teapot001, 0X0000000048D3CBB0, class:Teapot ---ProcMesh()--- numVertics:530 numFaces:1024 #success模型导出到 “c:/temp/CModel.pickle” 注意保证c:/temp存在否则导出失败 三、插件源代码 maxplus_export_sel_model.py import MaxPlus import pickle from CModel import CModel, CMesh, CTriangle, CVector3################################ # FILE DESCRIPTION # 文件描述CModelExport # 对应文章PythonOpenGL绘制3D模型七 制作3dsmax导出插件 # 作者李航 Lihang # 使用方法 # 1、选择要导出的模型 # 2、在命令行窗口中输入 # python.ExecuteFile C:/_proj/SuViewer/articles/step3/maxplus_export_sel_model.py # 3、把命令行拖入工具栏可以生成快捷方式方便下次使用 # 4、测试可使用的版本3dsmax2016 # ELSE.. ################################# 注意: 保证c:/temp目录存在否则无法导出 EXPORT_PATH_FILE c:/temp/CModel.pickle############ # CModelExport ############ class CModelExport:def __init__(self):self.list_mats []############# export# 插件主入口############ def export(self):model CModel()for n, obj, triObj in self.EnumSeletciontGeometry():print (find %s, class:%s%(n, obj.GetClassName()) )mesh triObj.GetMesh()out_mesh self.ProcMesh(n, mesh)model.list_mesh.append(out_mesh)with open(EXPORT_PATH_FILE, wb) as hf:pickle.dump(model, hf, 2)############# EnumSeletciontGeometry# 1、遍历选择的物体# 2、生成列表sel_list并返回############ def EnumSeletciontGeometry(self):sel_list []for n in MaxPlus.SelectionManager.Nodes: # objectobj n.EvalWorldState().Getobj()if obj.CanConvertToType(MaxPlus.ClassIds.TriMeshGeometry):triObj obj.ConvertToType(MaxPlus.ClassIds.TriMeshGeometry)item (n, obj, MaxPlus.TriObject._CastFrom(triObj))sel_list.append(item)#print (find %s, class:%s%(n, obj.GetClassName()) )else:print(cant conv triMesh, Type is:%s % obj.GetClassName())return sel_list############# ProcMesh# 1、处理max中的模型# 2、转成需要的CModel数据############def ProcMesh(self, node, mesh):print(---ProcMesh()---)## Color#new_mesh CMesh()color1 node.GetWireColor()new_mesh.color (color1.GetR(), color1.GetG(), color1.GetB())## Vertices#num_verts mesh.GetNumVertices()print (numVertics:%d%num_verts)for i in range(num_verts):point mesh.GetVertex(i)nv CVector3(point.X, point.Y, point.Z)new_mesh.list_vertices.append(nv)## Triangles#num_faces mesh.GetNumFaces()print (numFaces:%d%num_faces)for i in range(num_faces):tri mesh.GetFace(i)vi1 tri.GetVert(0)vi2 tri.GetVert(1)vi3 tri.GetVert(2)ev1 True if tri.GetEdgeVis(0) else Falseev2 True if tri.GetEdgeVis(1) else Falseev3 True if tri.GetEdgeVis(2) else Falsent CTriangle()nt.a (vi1, 0, 0)nt.b (vi2, 0, 0)nt.c (vi3, 0, 0)norm mesh.FaceNormal(i)nt.matId tri.GetMatID()nt.faceNormal CVector3(norm.X, norm.Y, norm.Z)nt.smGroup tri.GetSmGroup()nt.edgevis (ev1, ev2, ev3)new_mesh.list_tris.append(nt)return new_mesh############ # Main # 1、创建插件导出对象CModelExport # 2、执行export ############ modelExport CModelExport() modelExport.export() CModel.py class CModel:def __init__(self):self.list_mesh []class CMesh:def __init__(self):self.name self.color (0, 0, 0)self.list_vertices []self.list_tris []class CTriangle:def __init__(self):self.a(0, 0, 0)self.b(0, 0, 0)self.c(0, 0, 0)self.faceNormal CVector3(0, 0, 0)self.matId 0self.smGroup 0self.edgevis(True, True, True)class CVector3:def __init__(self, x, y, z):self.xxself.yyself.zz系列文章预告 目标是一个完善的Viewer能够显示Sketchup的.skp文件中的3D模型 Corona渲染器照片级渲染效果
http://www.dnsts.com.cn/news/274439.html

相关文章:

  • 网站建设报告模板网站上的定位怎么做
  • 青岛产品宣传片制作网站搜索优化价格
  • 做网站后端的全部步骤平台广告推广怎么做
  • 安装建设手机银行移动门户网站网络营销的未来发展趋势
  • 流行的网站建设技术有哪些石岩小学网站建设
  • 网站风格细节网站建设主页文档
  • 如何让别人浏览我做的网站松阳建设网站
  • 网站设计师培训学校永久持续更新
  • 做一个网站建设电商网站建设包括哪些内容
  • 广州网站建设模板制作外贸单子怎么找
  • 萝岗免费网站建设微信公众号推广链接
  • 求助如何做网站推广石家庄网站推广报价
  • 做交通招聘的网站做短视频网站需要审批
  • 网站建设业务范围perl 网站开发
  • 重庆巴南网站制作做亚马逊网站的账务处理
  • 网站服务器租用价格表织梦网站地图html怎么做
  • 苏州网站优化建设哪个网站可以做竖屏
  • 用服务器ip怎么做网站东莞php网站建设
  • 高端网站建设设计公司天元建设集团有限公司王士坤
  • 网站建设与维护期末试卷南宁网站建设策划外包
  • 自己做的网站打不开怎么回事杭州住房建设部官方网站
  • 正式做网站站点怎么新建河北住房建设厅网站首页
  • 建网站网站wordpress 作者 描述
  • 如何做区块链网站电商网站建设技术外包
  • 网站维护工作的基本内容榆林市建设局官方网站
  • 制作搜索类网站北京网站设计工作室
  • 360神搜网站建设营销型网站应用
  • 认识电子商务网站建设技术2022千锋教育培训收费一览表
  • 山东响应式网站深圳品牌火锅店加盟
  • 风铃网站具体是做那方面的淘宝网站是谁做的好