首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >WPF中的线框渲染

WPF中的线框渲染
EN

Stack Overflow用户
提问于 2012-10-07 03:14:15
回答 3查看 2.6K关注 0票数 7

我不得不在一个大的WPF应用程序中编写一个线框3D渲染器,它可以做很多事情,但WPF本身就没有这样的能力。

一些人使用微软的“WPF的3D工具”,特别是它的ScreenSpaceLines3D类。但是在web上,人们抱怨这个类的性能很慢,有各种各样的But,而且这个类库似乎自2007年以来就没有得到过维护!

其他人建议使用Helix3D工具包中的LinesVisual3D类,但显然这也有缺陷( http://helixtoolkit.codeplex.com/workitem/9957 )

Charles Petzold有一个3D库--有人知道它相当健壮吗?

那么我有什么好的选择吗?例如,有没有在WPF窗口中执行OpenGL3D的好方法?有没有其他好的WPF库可以可靠地做到这一点?

提前谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-10-30 08:22:05

查看SlimDX。XNA和托管DirectX等。已弃用或较旧。可能还要检查一下SharpDX,我已经有一段时间没有检查过它了。我们在.NET中为DirectX使用SlimDX,这是很好的。您可能正在考虑使用SlimDX在WPF互操作的D3DImage上呈现。另一种可能的选择是使用托管的WinForms控件,并使用该控件的句柄与SlimDX进行互操作,这可能会更快,但您会失去一些与WPF的渲染引擎等更容易的互操作。如果您使用D3DImage,它将成为一个ImageBrush,您可以设置为任何东西的背景,您不必担心空域问题等。

编辑:哦,是的,出于某种原因,SlimDX的下载中不再有他们的示例,但如果您下载它,他们的源代码中就有示例。

票数 3
EN

Stack Overflow用户

发布于 2012-10-29 19:41:21

This page似乎有关于使用OpenGL的信息。微软还提到了使用Direct3d和XNA。Direct3d非常容易使用,如果您已经了解OpenGL,那么学习XNA可能不会有太多问题。我承认,当我学习Direct3d的时候,它上的材料没有OpenGL材料好。

票数 2
EN

Stack Overflow用户

发布于 2015-07-10 03:30:49

我已经看到很多回复提到了这个问题的第三方解决方案。

对于纯WPF解决方案,我从现有的Model3D创建一个新的Model3D,其中每个facet创建时都有一个洞。即分成6个新的小平面,每个“线”的宽度与原始小平面大小成比例。

这样做的原因是它看起来比固定线宽更好,但如果需要,您可以使用固定线宽。

也可以选择将中心孔作为新的黑色小平面填充(在组中分隔Model3D ),这样就可以删除隐藏线了。

对于小平面上的三个点,A0,B0和C0,计算AB,AC和BC的中点。新点A1是沿着BC方向的1/20。对接下来的两个点B1和C1重复上述步骤。

“线”的6个新面由以下组合表示:

A0、B0、B1

A0、B1、A1

A0、C1、C0

A0、A1、C1

B0、C0、C1

B0、C1、B1

将A1、B1和C1添加到隐藏线删除变体的另一个模型中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12765841

复制
相关文章
如何在系统中添加字体(添加字体到系统)
笔者最近在使用win10自带的OneNote笔记本记笔记的时候,发现笔者电脑中没有华文新魏这个字体,最开始以为是OneNote不带有这个字体,经过一段时间的收集资料后发现,是笔者电脑win10系统中不带有这个字体,现将有关概念和字体安装方法做一下记录。
全栈程序员站长
2022/08/01
4K0
如何在系统中添加字体(添加字体到系统)
winfrom如何在listview中添加控件
private Button btn = new Button(); private void Form1_Load(object sender, EventArgs e) { ListViewItem[] lvs = new ListViewItem[3]; lvs[0] = new ListViewItem(new string[] { "行1列1", "行1列2", "" }); l
码农阿宇
2018/04/18
2.6K0
如何在Hue中添加Spark Notebook
CDH集群中可以使用Hue访问Hive、Impala、HBase、Solr等,在Hue3.8版本后也提供了Notebook组件(支持R、Scala及python语言),但在CDH中Hue默认是没有启用Spark的Notebook,使用Notebook运行Spark代码则依赖Livy服务。在前面Fayson也介绍了《Livy,基于Apache Spark的开源REST服务,加入Cloudera Labs》、《如何编译Livy并在非Kerberos环境的CDH集群中安装》、《如何通过Livy的RESTful API接口向非Kerberos环境的CDH集群提交作业》、《如何在Kerberos环境的CDH集群部署Livy》、《如何通过Livy的RESTful API接口向Kerberos环境的CDH集群提交作业》、《如何打包Livy和Zeppelin的Parcel包》和《如何在CM中使用Parcel包部署Livy及验证》,本篇文章Fayson主要介绍如何在Hue中添加Notebook组件并集成Spark。
Fayson
2018/11/16
6.8K1
7.如何在OpenLDAP中实现将一个用户添加到多个组
在前面的文章Fayson讲了《1.如何在CentOS6.5安装OpenLDAP并配置客户端》、《2.OpenLDAP集成SSH登录并使用SSSD同步用户》、《3.如何实现OpenLDAP的主主同步》、《4. 如何为Hive配置OpenLDAP认证》、《5.如何为Impala配置OpenLDAP认证》以及《6.如何为Hue配置OpenLDAP认证》。本篇文章主要介绍如何在OpenLDAP中将一个用户添加到多个组中。
Fayson
2018/03/29
4.8K0
如何在 wxPython 中创建多个工具栏
作为C++库wxWidgets的包装器,wxPython允许Python开发人员利用这个成熟且经过实战测试的框架的强大功能。它具有各种平台的本机外观和感觉,包括Windows,macOS和Linux。使用 wxPython,您可以使用各种小部件(例如按钮、文本控件,当然还有工具栏)设计具有视觉吸引力且响应迅速的桌面应用程序。
很酷的站长
2023/08/11
3100
如何在 wxPython 中创建多个工具栏
如何在Ansible中复制多个文件和目录
Ansible 通过 copy 和 fetch 模块提供了基本的复制文件和目录的功能.
东风微鸣
2022/04/21
17.4K2
如何在Ansible中复制多个文件和目录
如何在ModelSim中添加Xilinx仿真库
今天给大侠带来在FPGA设计应用中如何在ModelSim中添加Xilinx仿真库,话不多说,上货。
FPGA技术江湖
2020/12/30
5.3K1
如何在Vue中动态添加类名
能够向组件添加动态类名是非常强大的功能。它使我们可以更轻松地编写自定义主题,根据组件的状态添加类,还可以编写依赖于样式的组件的不同变体。
前端小智@大迁世界
2020/05/12
6.2K0
如何在README.md文件中添加图片
1、在github上的仓库建立一个存放图片的文件夹,文件夹名字随意。如:img-folder
挥刀北上
2021/03/10
6.1K0
如何在README.md文件中添加图片
条码软件中如何在边框上添加文字
很多用户在使用条码标签软件设计制作标签时,会有自己的一些个性化的需要,虽然条码软件不能和作图软件相比,但是很多效果还是可以通过一些小技巧来实现的。比如下面要给大家介绍的把文字压在边框上的效果。如下图所示。
神奇像素科技
2022/03/01
2.7K0
条码软件中如何在边框上添加文字
如何在 TypeScript 中为对象动态添加属性?
在 TypeScript 中,我们经常需要在运行时动态添加属性到对象上。这是因为 TypeScript 是一种静态类型语言,类型系统在编译时会检查代码的类型安全性,所以在编译时我们无法确定对象上将要添加哪些属性。在本文中,我们将讨论如何在 TypeScript 中为对象动态添加属性,以及这样做的一些注意事项。
网络技术联盟站
2023/06/07
11.8K0
如何在Eclipse中添加Tomcat的jar包
右键项目工程,点击Java Build Path 点击Add Library,选择Server Runtime 选择Tomcat版本 此时就看到拥有了Tomcat的jar包了
用户1154259
2018/01/17
2.8K0
如何在Eclipse中添加Tomcat的jar包
如何在WordPress中添加图片放大预览效果
这里分享一个如何在Wordpress中开启点击图片预览的功能。操作也非常的简单,只需要把下面的内容黏贴到对应的文件中即可。实际的效果预览
兔云小新LM
2023/09/11
3850
如何在WordPress中添加图片放大预览效果
gRPC: 如何在 gRPC 服务中自动添加 RequestId?
本文将介绍如何在 gRPC 微服务中,为每一个 API 自动添加 RequestId 。
尹东勋
2021/10/17
2.6K0
gRPC: 如何在 gRPC 服务中自动添加 RequestId?
在CentOS(Linux)中添加单个IP和批量添加多个IP地方法
在/etc/sysconfig/network- s/中新建文件ifcfg-eth0:*,*为数字序号,多个IP则依次增大 以0为例,建立文件ifcfg-eth0:0
雾海梦曦
2022/11/14
3.7K0
在CentOS(Linux)中添加单个IP和批量添加多个IP地方法
1、普通方法: 在/etc/sysconfig/network- s/中新建文件ifcfg-eth0-range0
Inkedus
2020/04/16
4.6K0
如何在前端应用中合并多个 Excel 工作簿
SpreadJS是纯前端的电子表格控件,可以轻松加载 Excel 工作簿中的数据并将它们呈现在前端浏览器应用的网页上。
葡萄城控件
2023/10/11
2930
如何在前端应用中合并多个 Excel 工作簿
点击加载更多

相似问题

Excel:创建新行并进行内插

27

插入缺失数据的行并进行内插

30

AngularJS将数组内插到字符串内指令

10

Rails -将变量传递给字符串内插

34

内插内插字符串中的格式字符串

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文