opengl

Solidworks出现异常的片状物,可能是因为不支持过新的显卡驱动

和自甴很熟 提交于 2020-08-09 11:47:13
首先,这些显示异常的零件并不是由stp、igs等交换格式转换而成的,而是我自己直接用Solidworks绘制的sldprt格式的零件。其次,肯定不是因为电脑硬件过低导致的,我的配置是:Ryzen 5 3600 6核12线程,48GB内存,RX5500XT 8G显存。 我推测是我所用的Solidworks 2018不支持过新的AMD显卡驱动(Radeon Software Adrenalin 2020 Edition 20.4.2)。另外,在系统选项的“性能”里面,勾选使用软件OpenGL,(此选项只能在没有打开任何文件的时候才能勾选或者取消勾选,勾选后将会由CPU负责显示图形,而不是由GPU显示),异常的片状物就会消失;取消勾选后,异常的片状物又会重新出现。这个现象可以反复重现,也基本能说明是Solidworks版本较低,不支持过新的显卡驱动。CPU毕竟不擅长做GPU的事情,勾选使用软件OpenGL之后,装配体的旋转、缩放、平移、选择面明显变得迟钝,很不好用。CPU只能勉强应付单个零件的显示,负担不起装配体。或许需要更换Solidworks 2020才能彻底解决这个问题。 我发现异常的片状物有一个共同点,那就是出现在圆孔旁边,并与坐标原点连成一个三角形,这个三角形在Solidworks中是无法选中的。 来源: oschina 链接: https://my.oschina.net/u

C 语言时隔 5 年重回巅峰,这 20 个热门项目拿去练手!

懵懂的女人 提交于 2020-08-09 07:39:27
在上个月的 TIOBE 编程语言排名中,C 语言和 Java 的差距只有 0.01%。在近日 TIOBE 公布的 2020 年 5 月编程语言排行榜中,C 语言成功超越了 Java,重返第一的王者宝座! 编程语言 5 月排名(TIOBE ) 距离上一次 C 语言占据第一还是 2015 年……是什么原因让这门 “年近 50” 的老大哥,时隔 5 年重回王者呢? 你可能也猜到了: 因为新冠病毒。 TIOBE 的 CEO —— Paul Jansen 猜测,每个人都试图攻破新冠病毒,这造成了嵌入式开发语言(例如 C 和 C++)又流行了起来,因为它们被广泛地应用在医疗设备和软件中。在 C 与 JAVA 之外,Python 和 R 语言的表现也相当的亮眼。 在 5 月份,Python 超越了 C++ 成功夺得了第三的宝座,拥有 9.12% 份额的 Python 达到了 TIOBE 指数的历史新高。 对此,TIOBE 官方做了一个大胆的预测,即如果 Python 可以依旧保持着这样的增长速度,那么可在未来 3 到 4 年内成功取代 C、Java,从而成为世界上最流行的编程语言。 2002-2020 编程语言排名变化 值得一提的是,Rust 在一个月内,从 27 名突飞猛进到了 21 名的位置,这可能和央行数字货币和 Libra 的新闻有关。 TIOBE 原文: https://www

OpenGL基础17:颜色

流过昼夜 提交于 2020-08-08 04:15:58
一、RGB三原色 回想一下初中物理知识: 三原色:自然界中所有的颜色都可以用 红、绿、蓝(RGB) 这三种颜色频率的不同强度组合而得,白色包含了所有颜色 能看到一个物体的颜色,是这个物体(Reflected)反射的颜色,换句话说,就是不能被当前物体吸收(Absorb)的颜色 之所以能看到五彩斑斓的世界,是因为存在光源(发光的物体),否则将是完全的黑暗 结合②③,颜色从光源到我们的眼睛,大致就是这样一个过程:光源发出光线 → 照射到物体上 → 物体反射所有光源中存在,但不能被其吸收的颜色 计算机如何表示颜色(应该算是个很基础的东西了): RGBA:RGB代表3原色,一般在(0, 255)的范围内,越大对应颜色越深,A代表透明度,可以转换成对应浮点数,例如0.5就等于128(HEX格式:#FFB6C1FF → 对应RGBA格式:255,182,193, 255) 由①可见,计算机能表现的颜色数量其实是有限的,总共(256 * 256 * 256)种不同颜色,这也是所谓的 8-bit 采样,现在部分支持 10 - bit 采样,在这种情况下能表现出总共 (1024 * 1024 * 1024) 种不同颜色 二、光照场景 回想 OpenGL基础5:第一个正方形 这一章 在这一章的时候,还没有接触到纹理,在颜色方面,也只是随便给他赋了个颜色 在此之后用了纹理

qt绘图相关的基础知识

江枫思渺然 提交于 2020-08-06 13:55:52
近期,从新提升一下软件平台中的组态部分,图形组态是最直观的界面操作入口,设计好,提高软件的使用效率。和数据可视化相比,图形组态更能说明业务逻辑关系。 Qt绘图知识主要由三大部分:普通2D绘图;图形视图,动画相关,3D绘图。 下面是主要知识基础点: 一 2D绘图 1.1基本绘制与填充 1.2坐标系统 1.3组合绘制:文字,路径,图像 1.4双缓冲绘图 就是在绘制时,先将所有内容都绘制到一个绘图设备上,然后将整个图像绘制到部件上显示出来。使用双缓冲绘图,可以避免显示时闪烁现场。 1.5其它相关知识点 二 图形视图与动画 2.1图形视图框架:场景,视图,图形项 2.2坐标系统和事件处理 2.3图形视图的特性:图形效果,动画,碰撞检测 2.4动画框架 2.5状态机框架 三 3D绘图 3.1使用opengl绘图 3.2设置颜色 3.3实现3D图形 3.4使用纹理贴图 来源: oschina 链接: https://my.oschina.net/u/4404709/blog/4317443

Qt编写安防视频监控系统33-onvif云台控制

独自空忆成欢 提交于 2020-08-06 03:37:01
一、前言 云台控制也是onvif功能中最常用的,最常用的功能排第一的是拿到视频流地址,排第二的就是云台控制了,云台控制的含义就是对带云台的摄像机进行上下左右的移动,一般云台摄像机都是带有一个小电机,一旦收到485或者网络来的正确的指令以后就触发单片机程序,然后单片机程序驱动电机进行转动,所以相对来说云台摄像机比普通的摄像机更耗电,当然价格也更贵。 云台控制的发送命令除了用户信息玩主要就三个核心参数xyz,通过这三个参数的组合来实现云台和焦距的控制,云台的转动主要就是改变xy的值,焦距的控制通过改变z的值来实现。 云台控制说明 x、y、z 范围都在0-1之间。 x为负数,表示左转,x为正数,表示右转。 y为负数,表示下转,y为正数,表示上转。 z为正数,表示拉近,z为负数,表示拉远。 通过x和y的组合,来实现云台的控制。 通过z的组合,来实现焦距控制。 onvif主要的功能 搜索设备,获取设备的信息比如厂家、型号等。 获取设备的多个配置文件信息profile。 获取对应配置文件的视频流地址rtsp,以及分辨率等参数。 云台控制,上下左右移动,焦距放大缩小,相对和绝对移动。 获取预置位信息,触发预置位。 订阅事件,接收设备的各种消息尤其是报警事件比如IO口的报警。 抓图,获取设备当前的图片。 获取、创建、删除用户信息。 获取和设备网络配置信息比如IP地址等。 获取和设置NTP时间同步。

从屏幕刷新频率到Unity VSync

≡放荡痞女 提交于 2020-08-05 22:02:24
显示器有一个属性叫屏幕刷新频率,它是指每秒刷新屏幕的次数,单位为Hz,一般设置为60Hz。 什么是刷新屏幕呢?我们屏幕是由像素矩阵组成的,其(CRT)显示图像的原理是靠电子束从左到右、从上到下逐行激发屏幕内表面的荧光粉单元(像素)来实现的。电子束一次水平方向的扫描叫行扫描,一次完整的扫描就是刷新屏幕,形成的图像就是一帧。因此60Hz的刷新率也就是每秒60帧,人眼的视觉暂留需要满足每秒24帧及以上。 显示器扫描的过程中有两个重要的概念:HBlank(行消隐)和VBlank(场消隐)。HBlank是指当行扫描到最右端时需要快速返回到下一行的最左端的过程。而VBlank则是指扫描完一帧,准备开始扫描下一帧,扫描线从右下角返回到左上角的过程。这两个过程的时间间隔中,扫描线需要变得blank,以防止看到一条斜线显示在屏幕上。 游戏渲染中的VSync(垂直同步)技术就与刷新率和VBlank有关。先说说为什么需要VSync。一般情况下CPU执行游戏逻辑和GPU执行渲染的计算都会快于屏幕的刷新,也就是CPU提交渲染数据和命令到GPU、GPU填充渲染结果到显存的速度会快于屏幕刷新,因此当屏幕刷新进行的过程中很可能会出现显存内容被改变的情况,从而造成Tearing(画面撕裂)。 解决Tearing问题的方案就是VSync。前面提到屏幕刷新的两帧之间会有一个VBlank

Learning OpenGL 1 [closed]

夙愿已清 提交于 2020-08-05 19:15:22
问题 As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance. Closed 7 years ago . I am studying computer science since 3 semester and we just started with openGl 1.0. We are doing the very basics (math behind the api

OpenCV开发笔记(六十五):红胖子8分钟带你深入了解ORB特征点(图文并茂+浅显易懂+程序源码)

一世执手 提交于 2020-08-05 15:36:33
若该文为原创文章,未经允许不得转载 原博主博客地址: https://blog.csdn.net/qq21497936 原博主博客导航: https://blog.csdn.net/qq21497936/article/details/102478062 本文章博客地址: https://blog.csdn.net/qq21497936/article/details/106926496 各位读者,知识无穷而人力有穷,要么改需求,要么找专业人士,要么自己研究 红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…(点击传送门) OpenCV开发专栏(点击传送门) 上一篇:《 OpenCV开发笔记(六十四):红胖子8分钟带你深入了解SURF特征点(图文并茂+浅显易懂+程序源码) 》 下一篇:持续补充中… 前言   红胖子,来也!   识别除了传统的模板匹配之外就是体征点了,前面介绍了Suft特征点,还有一个传统的就会ORB特征点了。   其实识别的特征点多种多样,既可以自己写也可以使用opencv为我们提供的,一般来说根据特征点的特性和效率,选择适合我们场景的特征就可以了。   本篇,介绍ORB特征提取。 Demo             ORB特征点 概述  

glutCloseFunc without terminating application [closed]

帅比萌擦擦* 提交于 2020-08-05 02:02:06
问题 Closed. This question needs debugging details. It is not currently accepting answers. Want to improve this question? Update the question so it's on-topic for Stack Overflow. Closed 4 years ago . Improve this question I have created a window with glutCreateWindow and started a loop using glutMainLoop . I want to end that loop and close the window so I use glutLeaveMainLoop and glutCloseFunc to destroy it. Automatically, my application terminates. I would like the application to persist after

【GLSL教程】(五)卡通着色 【转】

一个人想着一个人 提交于 2020-08-04 18:13:06
http://blog.csdn.net/racehorse/article/details/6641623 引言 卡通着色可能是最简单的非真实模式shader。它使用很少的颜色,通常是几种色调(tone),因此不同色调之间是突变的效果。下图显示的就是我们试图达到的效果: 茶壶上的色调是通过角度的余弦值选择的,这个角度是指光线和面的法线之间的夹角角度。如果法线和光的夹角比较小,我们使用较亮的色调,随着夹角变大,逐步使用更暗的色调。换句话说,角度余弦值将决定色调的强度。 在本教程中,我们先介绍逐顶点计算色调强度(intensity)的方法,之后把这个计算移到片断shader中,此外还将介绍如何访问OpenGL中光源的方向。 卡通着色——版本1 这个版本使用逐顶点计算色调强度的方法,之后片断shader使用顶点色调强度的插值来决定片断选择那个色调。因此顶点shader必须声明一个易变变量保存强度值,片断shader中也需要声明一个同名的易变变量,用来接收经过插值的强度值。 在顶点shader中,光线方向可以定义为一个局部变量或者常量,不过定义为一个一致变量将可以获得更大的灵活性,因为这样就可以在OpenGL程序中任意设置了。所以我们在shader中这样定义光的方向: [cpp] view plain copy uniform vec3 lightDir;