骑砍战团MOD开发(44)-可编程渲染管线shader编程

一.可编程渲染管线

     在GPU进行3D模型投射到2D平面过程中,渲染管线算法对开发者开放,目前支持的编程语言有OpenGL的ARB语言(pp文件),Direct3D的HLSL高级shader编程语言(fx文件).

     Direct3D提供一下API实现程序加载shader着色器文件:

D3DXCreateEffectFromFile(gDevice,"fxfname.fx",NULL,NULL,0,NULL,&anEffect,NULL)

二.骑砍引擎中的shader文件

    <1.pp文件(OpenGL-ARB编程语言)

         根目录下的bump_shader.pp,faceshader.pp,myshader.pp即为shader文件,通过在OpenBrf中的shader着色器中technique中标识使用该shader.

     <2.fx/fxo文件(Direct3D-HLSL编程语言)

         根目录下的earlyz.fxo,mb_2a.fxo,mb_2b.fxo,postFX.fx即为HLSLshader文件,通过在OpenBrf中的shader着色器中technique中标识使用该shader.

三.自定义shader并使用OpenBrf打开

     <1.在mb_warband_shader项目中修改mb.fx中添加自定义着色器技术:

    <2.运行compile_fx.bat生成mb_2a.fxo和mb_2b.fxo文件,根据显卡情况将其中一个文件重命名为mb.fx放置到自己MOD中

    <3.OpenBrf中创建新的shader并将technique设置为新的着色器:

    <4.OpenBrf中预览shader使用情况,修改OpenBrf工具中customPreviewShaders.xml:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/679030.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux nohup命令和

参考资料 linux后台运行nohup命令的使用及2>&1字符详解 目录 前期准备一. 基本语法二. 执行时不指定日志文件三. 执行后不想要日志文件四. nohup命令的执行与kill4.1 执行4.2 kill 前期准备 &#x1f4c4;handle_file.sh #!/bin/bashecho "文件复制开始..."…

Nginx报错合集(502 Bad Gateway,504 Gateway nginx/1.18.0 (Ubuntu) 等等报错)

1.504 Gateway Time-outnginx/1.18.0 (Ubuntu) 日志报错&#xff1a; 2024/02/11 04:38:54 [error] 564#564: *29 upstream timed out (110: Connection timed out) while reading response header from upstream, client: *******, server: *******, request: "GE…

从REPR设计模式看 .NET的新生代类库FastEndpoints的威力

📢欢迎点赞 :👍 收藏 ⭐留言 📝 如有错误敬请指正,赐人玫瑰,手留余香!📢本文作者:由webmote 原创📢作者格言:新的征程,我们面对的不仅仅是技术还有人心,人心不可测,海水不可量,唯有技术,才是深沉黑夜中的一座闪烁的灯塔 !序言 又到了一年年末,春节将至…

每日OJ题_位运算⑥_力扣137. 只出现一次的数字 II

目录 力扣137. 只出现一次的数字 II 解析代码 力扣137. 只出现一次的数字 II 137. 只出现一次的数字 II 难度 中等 给你一个整数数组 nums &#xff0c;除某个元素仅出现 一次 外&#xff0c;其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。 你必须…

WebSocketServer+redis实时更新页面数据

redis 实现发布订阅功能具体实现_redis convertandsend-CSDN博客 主要看上面这个 使用redis做websocket分布式消息推送服务_websocket redis-CSDN博客 ClassCastException: java.lang.String cannot be cast to com.alibaba.fastjson.JSONObject 的解决办法_java.lang.class…

锐捷(十九)锐捷设备的接入安全

1、PC1的IP地址和mac地址做全局静态ARP绑定; 全局下&#xff1a;address-bind 192.168.1.1 mac&#xff08;pc1&#xff09; G0/2:ip verify source port-securityarp-check 2、PC2的IP地址和MAC地址做全局IPMAC绑定&#xff1a; Address-bind 192.168.1.2 0050.7966.6807Ad…

Mysql中索引优化和失效

什么是索引 要了解索引优化和索引失效的场景就要先了解什么是索引 索引是一种有序的存储结构&#xff0c;按照单个或者多个列的值进行排序&#xff0c;以提升搜索效率。 索引的类型 UNIQUE唯一索引 不可以出现相同的值&#xff0c;可以有NULL值。 INDEX普通索引 允许出现相同…

QT+OSG/osgEarth编译之八十二:osgdb_obj+Qt编译(一套代码、一套框架,跨平台编译,版本:OSG-3.6.5插件库osgdb_obj)

文章目录 一、osgdb_obj介绍二、文件分析三、pro文件四、编译实践一、osgdb_obj介绍 OBJ格式是一种标准的3D模型文件格式,它以纯文本形式存储关于3D模型的信息。这种格式最初由Wavefront Technologies为其高级可视化系统开发,后来被广泛应用于3D软件之间的数据交换。OBJ格式…

sheng的学习笔记-网络爬虫scrapy框架

基础知识&#xff1a; scrapy介绍 何为框架&#xff0c;就相当于一个封装了很多功能的结构体&#xff0c;它帮我们把主要的结构给搭建好了&#xff0c;我们只需往骨架里添加内容就行。scrapy框架是一个为了爬取网站数据&#xff0c;提取数据的框架&#xff0c;我们熟知爬虫总…

深入理解设计模式:建造者模式

深入理解设计模式&#xff1a;建造者模式 在软件工程中&#xff0c;设计模式是解决常见问题的模板或指南。它们不是可以插入应用程序并期待奇迹发生的即成代码&#xff0c;而是在特定上下文中解决特定问题的指导原则。今天&#xff0c;我们将深入探讨其中一个创建型模式——建…

神经语言程式(NLP)项目的15 个开源训练数据集

一个聊天机器人需要大量的训练数据,以便在无需人工干预的情况下快速解决用户的询问。然而,聊天机器人开发的主要瓶颈是获取现实的、面向任务的对话数据来训练这些基于机器学习的系统。 我们整理了训练聊天机器人所需的对话数据集,包括问答数据、客户支持数据、对话数据和多…

React Native开发iOS实战录

文章目录 背景环境准备主要工具xcode安装安装CocoaPods 基本步骤常见问题ruby3在macOS上编译失败import of module ‘glog.glog.log_severity’ appears within namespace ‘google’yarn网络问题pod安装失败unable to open settings file 相关链接 背景 准备将之前的一个Reac…

请解释Java中的代理模式,分别介绍静态代理和动态代理

请解释Java中的代理模式&#xff0c;分别介绍静态代理和动态代理 代理模式是一种常见的设计模式&#xff0c;它允许一个对象&#xff08;代理对象&#xff09;代表另一个对象&#xff08;被代理对象&#xff09;进行访问控制&#xff0c;以控制对对象的访问。代理模式可以在不…

【QT+QGIS跨平台编译】之三十五:【cairo+Qt跨平台编译】(一套代码、一套框架,跨平台编译)

文章目录 一、cairo介绍二、文件下载三、文件分析四、pro文件五、编译实践一、cairo介绍 Cairo是一个功能强大的开源2D图形库,它提供了一套跨平台的API,用于绘制矢量图形和文本。Cairo支持多种输出目标,包括屏幕、图像文件、PDF、SVG等。 Cairo的设计目标是简单易用、高效…

EV/HEV中的牵引逆变器驱动优化

1、碳化硅牵引逆变器 什么是牵引逆变器&#xff1f;从本质上讲&#xff0c;牵引逆变器是电动汽车动力系统中的一个子系统&#xff0c;它从电池中获取高电压&#xff0c;并将其转换为交流电压——因此被称为逆变器——并基本上为电机供电。它控制电机速度和扭矩&#xff0c;直接…

【OpenHarmony硬件操作】OLED屏的使用、RGB灯的使用

文章目录 前言一、OLED 的相关使用1.1 初始化oled1.2 垂直滚动屏幕1.3 设置起始点坐标1.4 屏幕填充1.5 屏幕清屏1.6 开启和关闭oled1.7 输出字符串1.8 画BMP图像1.9 示例代码二、RGB灯2.1 初始化RGB彩灯2.2 设置RGB值2.3 示例代码总结

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Blank组件

鸿蒙&#xff08;HarmonyOS&#xff09;项目方舟框架&#xff08;ArkUI&#xff09;之Blank组件 一、操作环境 操作系统: Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1 二、Blank组件 空白填充组件&#xff0c;在容器主轴方向上&#xff0c;空白填充组件具…

【Tauri】(1):使用Tauri1.5版本,进行桌面应用开发,在windows,linux进行桌面GUI应用程序开发,可以打包成功,使用 vite 最方便

1&#xff0c;视频地址&#xff1a; https://www.bilibili.com/video/BV1Pz421d7s4/ 【Tauri】&#xff08;1&#xff09;&#xff1a;使用Tauri1.5版本&#xff0c;进行桌面应用开发&#xff0c;在windows&#xff0c;linux进行桌面GUI应用程序开发&#xff0c;可以打包成功&…

MongoDB系列之WiredTiger引擎

概述 关系型数据库MySQL有InnoDB存储引擎&#xff0c;存储引擎很大程度上决定着数据库的性能。 在MongoDB早期版本中&#xff0c;默认使用MMapV1存储引擎&#xff0c;其索引就是一个B-树&#xff08;也称B树&#xff09;。 从MongoDB 3.0开始引入WiredTiger&#xff08;以下…

使用C++从零开始,自己写一个MiniWeb

第一步&#xff1a;新建项目 1、打开VS点击创建新项目 2、选择空项目并点下一步&#xff08;切记不能选错项目类型&#xff09; 3、填写项目名称和路径&#xff0c;点击创建即可 新建好后项目是这样的比较干净 4、右击源文件&#xff0c;点击添加&#xff0c;新建http.cpp文件…