两部分问题:
具体来说,我想澄清JavaScript和CSS与JavaScript的不同之处或原因,您需要专门等到window.onload,以便解释器可以正确地获取getElementById.但是,在CSS中,您可以选择样式并将样式应用于类和ID.
(如果它甚至重要,假设我指的是一个带有外部样式表的基本HTML页面)
我有一个项目清单.一个项目可以是很多东西,让我们说列表是这样的:
[userObject , vehicleObject , userObject , animalObject , animalObject]
Run Code Online (Sandbox Code Playgroud)
现在我想用ngRepeat指令渲染列表,该指令将根据对象的类型使用模板(多态渲染).可以这样做吗?
也许像(ng-use是假设指令):
<ul>
<li ng-repeat="item in items">
<img ng-use="item.type == 'user'" ng-src="item.src">
<a ng-use="item.type == 'vehicle'">{{item.link}}</a>
<span ng-use="item.type == 'animal'">{{item.name}}</span>
</li>
</ul>
Run Code Online (Sandbox Code Playgroud) 我一直在尝试创建一个全屏视图.我计划使用核心图形进行渲染.我是iPhone开发的新手,请原谅这个基本问题.
这是我的设置代码;
- (void)loadView
{
CGRect rect = [[UIScreen mainScreen] bounds];
GameView *main_view;
main_view = [[GameView alloc] initWithFrame:rect ];
main_view.clearsContextBeforeDrawing = NO;
self.view = main_view;
[main_view release];
}
Run Code Online (Sandbox Code Playgroud)
然而,当我运行这个时,我会在时间和电池电量的顶部获得一个薄的状态栏.
我尝试寻找一些样品,但所有样品都是opengles.
有人可以告诉我哪里出错了吗?以及如何创建全屏视图.
谢谢
我有一个UIView图像和一些按钮作为其子视图.我想用它renderInContext或其他方法得到它的"快照"图像.
[clefView.layer renderInContext:mainViewContentContext];
Run Code Online (Sandbox Code Playgroud)
如果我将它传递给我UIView(如上所述),那么我得到一个空白的位图.没有子项被渲染到位图中.
如果我传递了作为图像的子视图,那么我得到一个该位图的图像,并且,毫不奇怪,没有它的兄弟(按钮).
我有点希望renderInContext将图像和所有可见的孩子都渲染成位图.有没有人有任何想法如何做到这一点?
我试图在Mac OS X 10.6上正确渲染Devanagari连字(在Unicode字符串中).
字符串在a上绘制JComponent并RenderingHints用于抗锯齿.连字在Windows XP SP2和7以及Ubuntu中正确显示,但在Mac OS X中,连字被分解(或者更确切地说,没有正确合并),变音符被移离其位置等等(参见下面的截图,正确的渲染示例来自左侧的Win XP SP2(使用RenderingHintsAntialiasing键ON),右侧的Mac OS X 10.6.7中的错误渲染示例(Antialising DEFAULT= OFF).
我已将字体设置如下,因此它应该在任何系统上使用默认字体:
new Font(null,Font.PLAIN,20);
Run Code Online (Sandbox Code Playgroud)
我相信所有这些可能与Macs上的默认字符编码是MacRoman(不是UTF-8子集)以及其他系统(如Windows)使用UTF-8子集(例如WinLatin-1)这一事实有关. )或cp1252等.
即使掌握了这些信息,我也不知道如何处理这个问题.因此,如果有人能指出我正确的方向,我将非常感激.

我已经尝试了很多东西:
TextAttribute LIGATURES_ON 没有解决问题我非常感谢任何提示或其他开发人员的代码片段(最好是在Mac上开发的印地语背景).
我对@ font-face CSS选项有点挣扎.经过大量的阅读,尝试,重试我终于遇到了一个网站,当你上传你的字体时,它会让你成为一个随时可用的包.它现在正在运行,但似乎字体没有得到消除锯齿.虽然我在其他网站上看到这种情况,但我的标题并没有按照我想要的方式呈现.
我的CSS代码:
@font-face {
font-family: 'YanoneKaffeesatzThin';
src: url('../fonts/yanonekaffeesatzthin-webfont.eot');
src: local('?'), url('../fonts/yanonekaffeesatzthin-webfont.woff') format('woff'), url('../fonts/yanonekaffeesatzthin-webfont.ttf') format('truetype'), url('../fontsyanonekaffeesatzthin-webfont.svg#webfontyC5sm3N9') format('svg');
font-weight: normal;
font-style: normal;}
Run Code Online (Sandbox Code Playgroud)
还有什么可以让这个最后但又令人讨厌的问题消失?
如果你有一个非常大的JPG和嵌入在HTML上的BMP并将它加载到Firefox中,你会注意到JPG将"向下"加载(从左到右,然后向下),BMP将加载"向上" (从右到左涂漆,然后向上涂).
只是好奇.:)
我正在制作一个个人学习项目来制作一个Minecraft克隆.除了一件事,它的工作非常好.类似于我的世界,我的地形有很多立方体堆叠在Y上,所以你可以挖掘.虽然我做了截头剔除,但这仍然意味着我无用地在我下面画出所有层的立方体.立方体是X,Y和Z有序的(虽然只在1个方向,所以从技术上讲,它不是Z订购到相机).我基本上从玩家的位置只添加指向玩家周围的立方体的指针.然后,我对这些进行了截击.我不做oct树细分.我想只是没有渲染玩家下面的图层,除非玩家向下看到一个洞时这不起作用.鉴于此,我怎么能避免在我下面渲染我看不到的立方体,或者还有其他立方体隐藏的立方体.
谢谢
void CCubeGame::SetPlayerPosition()
{
PlayerPosition.x = Camera.x / 3;
PlayerPosition.y = ((Camera.y - 2.9) / 3) - 1;
PlayerPosition.z = Camera.z / 3;
}
void CCubeGame::SetCollids()
{
SetPlayerPosition();
int xamount = 70;
int zamount = 70;
int yamount = 17;
int xamountd = xamount * 2;
int zamountd = zamount * 2;
int yamountd = yamount * 2;
PlayerPosition.x -= xamount;
PlayerPosition.y -= yamount;
PlayerPosition.z -= zamount;
collids.clear();
CBox* tmp;
for(int i = 0; i < xamountd; …Run Code Online (Sandbox Code Playgroud) 我一直假设我的伽马校正管道应该如下:
GL_SRGB8_ALPHA8)中加载的所有纹理使用sRGB格式,因为所有艺术程序都会对其文件进行预伽玛校正.从GL_SRGB8_ALPHA8着色器中的纹理采样时,OpenGL将自动转换为线性空间.请注意,在我的情况下,最终的颜色写入涉及我从FBO(线性RGB纹理)写入后缓冲区.
我的假设受到挑战,好像我在最后阶段进行了伽马校正,我的颜色比它们应该更亮.我设立了由我的价值灯光绘制纯色{255,106,0},但是当我使我得到的{255,171,0}(由打印筛选和颜色采摘确定).而不是橙色我变黄了.如果我没有在最后一步Gamma校正我得到完全相同的{255,权值106,0}.
根据一些资源,现代液晶屏幕模仿CRT伽玛.他们总是吗?如果没有,我怎么知道我是否应该伽马正确?我在其他地方出错了吗?
我现在已经注意到,即使我用光写的颜色是正确的,我使用纹理颜色的地方也不正确(但是如果没有伽马校正,我的预期会更暗).我不知道这种差异来自何处.
在尝试GL_RGBA8我的纹理而不是之后GL_SRGB8_ALPHA8,即使在光照计算中使用纹理值(如果我将光的强度减半,输出颜色值减半),一切看起来都很完美.
我的代码不再考虑任何地方的伽玛校正,我的输出看起来正确.
这让我更加困惑,不再需要/使用伽玛校正?
经过一些实验后,我对这里的几点感到困惑.
1 - 大多数图像格式都是非线性存储的(在sRGB空间中)
我加载了一些图像(在我的例子中是.png和.bmp图像)并检查了原始二进制数据.在我看来,好像图像实际上是在RGB颜色空间中,就好像我将像素值与图像编辑程序与我在程序中得到的字节数组进行比较,它们完美匹配.由于我的图像编辑器给了我RGB值,这表示存储在RGB中的图像.
我正在使用stb_image.h/.c来加载我的图像并一直加载.png并且没有看到加载时伽玛校正图像的任何地方.我还在十六进制编辑器中检查了.bmps,并且磁盘上的值与它们匹配.
如果这些图像实际存储在线性RGB空间的磁盘上,我应该如何(以编程方式)知道何时指定图像是在sRGB空间中?是否有某种方法可以查询更具特色的图像加载器可能提供的内容?或者由图像创建者来保存他们的图像作为伽马校正(或不校正) - 意味着建立一个约定并遵循它给定一个项目.我问了几位艺术家,他们都不知道伽马校正是什么.
如果我指定我的图像是sRGB,它们太暗了,除非我最后进行伽马校正(如果监视器使用sRGB输出,这是可以理解的,但请参见第2点).
2 - "在大多数计算机上,有效扫描输出LUT是线性的!这意味着什么?"
我不确定我能在你的回复中找到这个想法的结果.
据我所知,经过实验,我测试了所有显示器的输出线性值.如果我绘制全屏四边形并在着色器中使用硬编码值对其进行着色而不进行伽马校正,则显示器会显示我指定的正确值.
我从你的回答和我的结果中引用的句子会让我相信现代监视器输出线性值(即不模仿CRT伽玛).
我们的应用程序的目标平台是PC.对于这个平台(不包括带有CRT或真正旧显示器的人),对#1做出任何响应都是合理的,然后对#2进行非伽马校正(即不执行最终的RGB-> sRGB转换 - 手动或使用GL_FRAMEBUFFER_SRGB)?
如果是这样的话,那GL_FRAMEBUFFER_SRGB的平台是什么(或者今天有效使用它的平台),或者是使用线性RGB的监视器真的那么新(假设GL_FRAMEBUFFER_SRGB是2008年推出的那样)?
-
我和我学校的其他一些图形开发人员谈过,并且从它的声音来看,他们都没有考虑伽马校正,他们没有注意到任何不正确的事情(有些人甚至都没有意识到).一个开发人员特别说他在考虑伽玛时得到了不正确的结果,因此他决定不担心伽玛.鉴于我在线/看到我的项目时出现的信息存在冲突,我不确定在我的目标平台项目中该怎么做.
确实是的.如果在信号链中的某处应用了非线性变换,但是所有像素值都未从图像中修改为显示,则该非线性已经预先应用于图像的像素值.这意味着,图像已经处于非线性色彩空间中.
如果我正在检查显示器上的图像,您的回答对我来说是有意义的.可以肯定我是清楚的,当我说我正在研究该图像的字节数组,我的意思是我正在研究在内存中数值的纹理,而不是屏幕上的图像输出(我没有为点#做2) .对我来说,唯一可以看到你说的是真实的方式就是图像编辑器给我的sRGB空间值.
另请注意,我确实尝试检查显示器上的输出,以及修改纹理颜色(例如,除以一半或加倍),输出显示正确(使用我在下面描述的方法测量).
你是如何测量信号响应的? …
我看到经常推荐使用Moller和Trumbore的Fast Minimum Storage Ray/Triangle Intersection.
问题是,我不介意预先计算和存储任何数量的数据,只要它加速交叉点.
所以我的问题是,不关心记忆,做射线三角交叉的最快方法是什么?
编辑:我不会移动三角形,即它是一个静态场景.