IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Renderdoc部分Python接口说明 -> 正文阅读

[Python知识库]Renderdoc部分Python接口说明

Python接口

qrenderdoc.ExtensionManager.OpenFileName(caption, dir, filter) 

qrenderdoc.ExtensionManager.OpenFileName(caption, dir) 

qrenderdoc.ExtensionManager.OpenFileName(caption) 

qrenderdoc.ExtensionManager.OpenFileName()

浏览要打开的文件名

参数

  • caption(str):可选,对话框标题

  • dir(str):可选,浏览的起始目录

  • filter(str):可选,应用文件名的过滤器

return:str:选择的文件名,未选择则返回空字符

ctx: qrenderdoc.CaptureContext

open_file_name = ctx.Extensions().OpenFileName("请选择打开的文件")

renderdoc.OpenCaptureFile()

创建捕获文件的句柄

return:CaptureFile:指定路径的句柄

cap = renderdoc.OpenCaptureFile()

renderdoc.CaptureFile.OpenFile(filename,filetype,progress)

获取打开文件的状态

参数

  • filename(str):要打开的文件名

  • filetype(str):给定多的文件格式

  • progress(ProgressCallback):如果发生导入步骤,将使用更新的进度值重复调用的回调,默认取None

return:renderdoc.ReplayStatus:返回打开操作的状态

cap = renderdoc.OpenCaptureFile()

status = cap.OpenFile(filename,"",None)

if status != rd.ReplayStatus.Succeeded:

Raise RuntimeError("Couldn't open file: "+str(status))

renderdoc.CaptureFile.OpenCapture(opts,progress)

创建本地重播的句柄及打开状态

参数

  • opts(ReplayOptions):控制如何重播捕获的选项

  • progress(ProgressCallback):如果发生导入步骤,将使用更新的进度值重复调用的回调,默认取None

return:[ReplayStatus,ReplayController]:[返回打开操作的状态,成功的捕获句柄]

cap = renderdoc.OpenCaptureFile()

status,controller = cap.OpenCapture(rd.ReplayOptions(),None)

if status != rd.ReplayStatus.Succeeded:

Raise RuntimeError("Couldn't initialise replay: "+str(status))

renderdoc.ReplayController.GetRootActions()

获取捕获的操作列表

return:List[ActionDescription]:捕获的操作列表

actions = controller.GetRootActions()

renderdoc.ReplayController.GetResources()

获取资源列表

return:List[ResourceDescription]:捕获的资源列表

resources = controller.GetResources()

renderdoc.ReplayController.GetStructuredFile()

获取加载的捕获的结构化数据表示

return:SDFile:捕获的结构化文件

sdfile = controller.GetStructuredFile()

renderdoc.ReplayController.GetTextures()

获取捕获的纹理列表

return:List[TextureDescription]:捕获的纹理列表

textures = controller.GetTextures()

renderdoc.ReplayController.GetShader(pipeline, shader, entry)

获取捕获的shader信息

参数

  • pipeline(ResourceId):着色器绑定的管道状态对象

  • shader(ResourceId):获取反射数据的着色器

  • entry(ShaderEntryPoint):着色器的反射入口点

return:ShaderReflection:shader反射信息

shaders = controller.GetShader(controller.GetPipelineState().GetGraphicsPipelineObject(),resource.resourceId,controller.GetShaderEntryPoints(resource.resourceId))

renderdoc.ReplayController.SaveTexTure(saveData,path)

保存捕获的纹理

参数

  • saveData(TextureSave):设置纹理的保存方式

    • alpha

    • alphaCol

    • channelExtract

    • comp

    • destType

    • jpegQuality

    • mip

    • resourceId

    • sample

    • slice

    • typeCast

  • path(str):纹理的保存路径

return:bool:纹理的保存结果

texsave.mip = 0

texsave.slice.sliceIndex = 0

texsave.alpha = rd.AlphaMapping.Preserve

texsave.destType = rd.FileType.PNG

controller.SaveTexture(texsave, outTexPath)

renderdoc.ReplayController.GetPipelineState()

获取管道状态信息

return:PipeState:当前管道的状态

state = controller.GetPipelineState()

renderdoc.PepeState.GetGraphicsPipelineObject()

获取图形管道对象

return:ResourceId:指定管道的资源id

pipe = state.GetGraphicsPipelineObject()

renderdoc.ReplayController.FetchCounters(counters)

检索一组指定计数器的值

参数

  • counters(List[GPUCounter]):需要获取值的计数器列表

    • EventGPUDuration:两个GPU时间戳之差

    • InputVerticesRead:输入汇编器读取的顶点数

    • GSPrimitives:集合着色器输出的图元数

    • RasterizedPrimitives:渲染的图元个数

    • SamplesPassed:通过深度/模板测试的样本数量

return:List[CounterResult]:一组计数器的值

results = controller.FetchCounters([rd.GPUCounter.EventGPUDuration])

for result in results:

for action in actions:

??If action.eventId == r.eventId:

????print("name {0},event time {1}".format(action.GetName(controller.GetStructuredFile()),result.value.d))

部分数据获取

results = controller.FetchCounters([rd.GPUCounter.EventGPUDuration]) 
# eventTime(微秒) 
results.value.d actions = controller.GetRootActions() 


# action name 
action.GetName(controller.GetStructuredFile()) 
# action eventId 
action.eventId 
# action events非dc事件 
action.events 
# 顶点数 action.numIndices 


sdfile = controller.GetStructuredFile() 
chunk = sdfile.chunks[event.chunkIndex] 
if chunk.type.basetype == rd.SDBasic.Chunk 
#非dc下事件name 
name = chunk.name 
# 子资源数量 
chunk.NumChildren()
# 通过索引获取孩子 
child = chunk.GetChild(index) 
# 引用的孩子的资源id 
child.data.basic.id 


# 纹理尺寸 textures = controller.GetTextures() 
texture in textures 
texture.height 
texture.width 
texture.format.Name() 
texture.byteSize 


# shader code 
entry = controller.GetShaderEntryPoints(resource.resourceId) 
e in entry shaders = controller.GetShader(pipe,resource.resourceId,e) 
file in shaders.debugInfo.files 
file.contents

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-05-08 08:03:10  更:2022-05-08 08:04:29 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 16:02:32-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码