我迷失了为什么当我从南方或东方看时,我的纹理呈现出预期的效果,但是当从北方或西方看时,它隐藏在它们后面的物体。
我有一个隐藏的块,它会在其中呈现多个项目,并且遇到具有半透明纹理的块的问题。尝试切换基本块和纹理块的所有块属性(例如渲染类型,图层,不透明),并在渲染时尝试不同的混合选项。
Forge版本1.12
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://use.fontawesome.com/c6435311fd.js"></script>
<div id="img">
<span class="rating">
<i id="star1" class="fa fa-star"></i>
<i id="star2" class="fa fa-star"></i>
<i id="star3" class="fa fa-star"></i>
<i id="star4" class="fa fa-star"></i>
<i id="star5" class="fa fa-star"></i>
</span>
</div>
答案 0 :(得分:0)
在阅读transparency后 - 我有深度掩码和缺少alpha函数。
GlStateManager.enableBlend();
GlStateManager.blendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
if (transparent) {
GlStateManager.depthMask(false);
GlStateManager.alphaFunc(GL11.GL_LESS, 1.0F);
itemRenderer.renderItem(block.stack, model);
GlStateManager.depthMask(true);
} else {
GlStateManager.alphaFunc(GL11.GL_EQUAL, 1.0F);
itemRenderer.renderItem(block.stack, model);
}
GlStateManager.disableBlend();
要记住的事情:
最后渲染透明物品,否则它们将无法正确显示&#34;内部&#34;。
renderItem(new GetBlock("minecraft:jukebox"), 0.5F, false );
renderItem(new GetBlock("mymod:blue"), 1F, true /*transparent*/);
实体项还需要混合函数GlStateManager.blendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
,因为堆栈上的第一个实体项会在某些角度出现故障: