使用gl_PointSize的点精灵在OpenGL ES 2.0和OpenGL 3+中呈现不同的大小(point sprites with gl_PointSize renders at a different size in OpenGL ES 2.0 and OpenGL 3+)
我有一个OpenGL程序,它在Mac OS X上使用OpenGL 3.2 Core配置文件,在iOS上使用OpenGL ES 2.0。
我的应用程序的一部分通过写入顶点着色器中的
gl_PointSize
来渲染点精灵。 不幸的是,看起来gl_PointSize
在OpenGL 3中的渲染量比在OpenGL ES 2.0中大约高50倍。 每个API的文档都指出gl_PointSize
定义了像素数,所以我不确定为什么会出现这种情况。 是否有一个默认的OpenGL参数修改了gl_PointSize
的输出? 还有什么可能导致尺寸的巨大差异吗?每个平台使用完全相同的着色器(桌面具有ARB_ES2兼容性)。 我还检查了所有统一输入是否相同,并且都以相同的分辨率渲染。 在着色器之外,我做的唯一与sprite相关的调用是
glEnable(GL_VERTEX_PROGRAM_POINT_SIZE);
。 在每个平台上彼此独立,我可以很好地调整点大小。I have a OpenGL program which utilizes OpenGL 3.2 Core profile on Mac OS X and OpenGL ES 2.0 on iOS.
Part of my application renders point sprites by writing to
gl_PointSize
in the vertex shader. Unfortunately it appears thatgl_PointSize
renders at roughly 50x larger in OpenGL 3 than it does in OpenGL ES 2.0. The documentation for each API states thatgl_PointSize
defines the number of pixels, so I am unsure why this would be the case. Is there perhaps a default OpenGL parameter that modified the output ofgl_PointSize
? Is there anything else that may be causing the vast difference in size?Each platform uses exactly the same shader (desktop has ARB_ES2 compatibility). I have also checked that all uniform inputs are identical and both render at the same resolution. Outside of the shader, the only point sprite related call I make is
glEnable(GL_VERTEX_PROGRAM_POINT_SIZE);
. On each platform independent of one another, I can adjust the point size just fine.
原文:https://stackoverflow.com/questions/38299341
最满意答案
您只是在
INSERT
之前忘记了FOR
(或AFTER
)关键字:CREATE TRIGGER CLR_TRIGGER_NAUDOJASI ON dbo.NAUDOJASI FOR INSERT AS external name %Assembly.GeneratedName%. go
在提出这样的问题之前,您应该首先在MSDN上查阅SQL Server联机丛书 ! 具有用于验证的任何T-SQL命令的精确语法 !
You simply forgot the
FOR
(orAFTER
) keyword before theINSERT
:CREATE TRIGGER CLR_TRIGGER_NAUDOJASI ON dbo.NAUDOJASI FOR INSERT AS external name %Assembly.GeneratedName%. go
Before asking such a question, you should really consult the SQL Server Books Online on MSDN first! The have the precise syntax for any of the T-SQL commands for you verify!
相关问答
更多-
所有赋值操作必须以关键字set开头。 Set @TrID = @TrID + 1 正如Ivan指出的那样,你正在使用IsNull。 正确的用法是: If @TrID Is Null All assignment operations must be preceded by the keyword set. Set @TrID = @TrID + 1 Also you are using IsNull incorrectly as Ivan points out. The proper usage is ...
-
像这样重写你的查询: SELECT CASE WHEN DATALENGTH(IDNumber) > 7 THEN SUBSTRING(IDNumber, 0, 6) WHEN DATALENGTH(IDNumber) < 7 THEN CONCAT(REPLICATE(0, LEN(IDNumber)), IDNumber) END AS NID; 编写CASE Column ,必须将其与直接值进行比较,而不是与表达式进行比较。 Rewrite your que ...
-
with cte as ( select *, row_number() over ( partition by product order by date desc ) as rownumber from saleslist where datediff( month, [date], getdate() ) < 2 ) select product, ( (max(case when rownumber = 1 then price ...
-
你错过了FOR INSERT, UPDATE 如果你在trigger有多个语句,请始终使用Begin and END CREATE TRIGGER booksys.dbo.trg_Booking ON booksys.dbo.Bookings FOR INSERT, UPDATE as Begin IF Not exists ( SELECT 1 FROM Inserted Inner Join booksys.dbo.Employees on Inserted.EmployeeNo = Employe ...
-
您只是在INSERT之前忘记了FOR (或AFTER )关键字: CREATE TRIGGER CLR_TRIGGER_NAUDOJASI ON dbo.NAUDOJASI FOR INSERT AS external name %Assembly.GeneratedName%. go 在提出这样的问题之前,您应该首先在MSDN上查阅SQL Server联机丛书 ! 具有用于验证的任何T-SQL命令的精确语法 ! You simply forgot the FOR (or AFTER) k ...
-
消息319,级别15,状态1,“关键字附近的语法错误”与“。”。(Msg 319, Level 15, State 1, “Incorrect syntax near the keyword 'with'.”)[2023-10-21]
在WITH之前加上一个分号(;)。 ;WITH Page_CTE AS ( 正如错误信息告诉你的,前面的语句应该以分号结尾。 Put a semicolon (;) just before WITH. ;WITH Page_CTE AS ( As the error message tells you, the previous statement should be terminated with a semicolon. -
alter trigger时关键字“AS”附近的语法不正确(Incorrect syntax near the keyword “AS” when alter trigger)[2022-07-14]
不,不,不,不,不。 不要错误地假设inserted和deleted只有一行。 您只是在代码中添加错误,这些错误将在意外时间弹出。 我实际上希望SQL Server在创建触发器时标记此用法。 代替: alter trigger trgInsteadofdeleteEmp on Emp instead of delete as begin insert into EmployeeAudit(id, name) select id, name + ' ... -
使用表别名尝试下面的一个 select @startDT,@endDT,timeDiff,CaseType,QueueType,count(id_queue) from ( SELECT (CASE WHEN DATEPART(hour, dt_created_by) = '0' THEN '00 - 01' WHEN DATEPART(hour, dt_created_by) = '1' THEN '01 ...
-
我已经注释掉了一些可疑的END现在看看,有了这么复杂的查询,缩进确实让事情变得容易些。 IF (Not Exists(SELECT * FROM Log_DB.dbo._LogJobSYS WHERE KillerJobID=@JKillerID AND DeadJobID=@CharID)) BEGIN INSERT Log_DB.dbo._LogJobSYS(KillerJobID,DeadJobID,DeathTime) VALUES (@JKillerID, ...
-
语法是正确的,您是否尝试过像这样运行更新命令 convert(dateTime,'20160209') Update hir_view set ValidTo=convert(dateTime,'20160209') where HierarchyId in ( select distinct HierarchyId from hir_organisation where ValidTo
相关文章
更多- Solr4.0(SolrCloud) & ElasticSearch(ES) 比较(二)
- JOGL基本模板API
- JOGL绘制图形
- hadoop 2.0--YARN
- lucene2.0与2.3区别
- Hadoop2.0构成之YARN
- Riak 2.0 技术预览版深度剖析
- Hadoop为大数据关键部分 将推2.0版本
- nucth2.0 导入eclipse中
- Hadoop 2.0 安装向导 (0.23.x)
最新问答
更多- 您如何使用git diff文件,并将其应用于同一存储库的副本的本地分支?(How do you take a git diff file, and apply it to a local branch that is a copy of the same repository?)
- 将长浮点值剪切为2个小数点并复制到字符数组(Cut Long Float Value to 2 decimal points and copy to Character Array)
- OctoberCMS侧边栏不呈现(OctoberCMS Sidebar not rendering)
- 页面加载后对象是否有资格进行垃圾回收?(Are objects eligible for garbage collection after the page loads?)
- codeigniter中的语言不能按预期工作(language in codeigniter doesn' t work as expected)
- 在计算机拍照在哪里进入
- 使用cin.get()从c ++中的输入流中丢弃不需要的字符(Using cin.get() to discard unwanted characters from the input stream in c++)
- No for循环将在for循环中运行。(No for loop will run inside for loop. Testing for primes)
- 单页应用程序:页面重新加载(Single Page Application: page reload)
- 在循环中选择具有相似模式的列名称(Selecting Column Name With Similar Pattern in a Loop)
- System.StackOverflow错误(System.StackOverflow error)
- KnockoutJS未在嵌套模板上应用beforeRemove和afterAdd(KnockoutJS not applying beforeRemove and afterAdd on nested templates)
- 散列包括方法和/或嵌套属性(Hash include methods and/or nested attributes)
- android - 如何避免使用Samsung RFS文件系统延迟/冻结?(android - how to avoid lag/freezes with Samsung RFS filesystem?)
- TensorFlow:基于索引列表创建新张量(TensorFlow: Create a new tensor based on list of indices)
- 企业安全培训的各项内容
- 错误:RPC失败;(error: RPC failed; curl transfer closed with outstanding read data remaining)
- C#类名中允许哪些字符?(What characters are allowed in C# class name?)
- NumPy:将int64值存储在np.array中并使用dtype float64并将其转换回整数是否安全?(NumPy: Is it safe to store an int64 value in an np.array with dtype float64 and later convert it back to integer?)
- 注销后如何隐藏导航portlet?(How to hide navigation portlet after logout?)
- 将多个行和可变行移动到列(moving multiple and variable rows to columns)
- 提交表单时忽略基础href,而不使用Javascript(ignore base href when submitting form, without using Javascript)
- 对setOnInfoWindowClickListener的意图(Intent on setOnInfoWindowClickListener)
- Angular $资源不会改变方法(Angular $resource doesn't change method)
- 在Angular 5中不是一个函数(is not a function in Angular 5)
- 如何配置Composite C1以将.m和桌面作为同一站点提供服务(How to configure Composite C1 to serve .m and desktop as the same site)
- 不适用:悬停在悬停时:在元素之前[复制](Don't apply :hover when hovering on :before element [duplicate])
- 常见的python rpc和cli接口(Common python rpc and cli interface)
- Mysql DB单个字段匹配多个其他字段(Mysql DB single field matching to multiple other fields)
- 产品页面上的Magento Up出售对齐问题(Magento Up sell alignment issue on the products page)