/**
* Draw this primitve. This is typically called only once as the generated drawing instructions are saved by the
* renderer and reused later.
*/
public void draw(WorldRenderer renderer, float scale)
{
Vec3 vec3 = this.vertexPositions[1].vector3D.subtractReverse(this.vertexPositions[0].vector3D);
Vec3 vec31 = this.vertexPositions[1].vector3D.subtractReverse(this.vertexPositions[2].vector3D);
Vec3 vec32 = vec31.crossProduct(vec3).normalize();
float f = (float)vec32.xCoord;
float f1 = (float)vec32.yCoord;
float f2 = (float)vec32.zCoord;
if (this.invertNormal)
{
f = -f;
f1 = -f1;
f2 = -f2;
}
renderer.begin(7, DefaultVertexFormats.OLDMODEL_POSITION_TEX_NORMAL);
for (int i = 0; i < 4; ++i)
{
PositionTextureVertex positiontexturevertex = this.vertexPositions[i];
renderer.pos(positiontexturevertex.vector3D.xCoord * (double)scale, positiontexturevertex.vector3D.yCoord * (double)scale, positiontexturevertex.vector3D.zCoord * (double)scale).tex((double)positiontexturevertex.texturePositionX, (double)positiontexturevertex.texturePositionY).normal(f, f1, f2).endVertex();
}
Tessellator.getInstance().draw();
}
java类net.minecraft.client.renderer.vertex.DefaultVertexFormats的实例源码
TexturedQuad.java 文件源码
项目:BaseClient
阅读 26
收藏 0
点赞 0
评论 0
Minecraft.java 文件源码
项目:Zombe-Modpack
阅读 20
收藏 0
点赞 0
评论 0
/**
* Draw with the WorldRenderer
*/
public void draw(int posX, int posY, int texU, int texV, int width, int height, int red, int green, int blue, int alpha)
{
VertexBuffer vertexbuffer = Tessellator.getInstance().getBuffer();
vertexbuffer.begin(7, DefaultVertexFormats.POSITION_TEX_COLOR);
float f = 0.00390625F;
float f1 = 0.00390625F;
vertexbuffer.pos((double)posX, (double)(posY + height), 0.0D).tex((double)((float)texU * 0.00390625F), (double)((float)(texV + height) * 0.00390625F)).color(red, green, blue, alpha).endVertex();
vertexbuffer.pos((double)(posX + width), (double)(posY + height), 0.0D).tex((double)((float)(texU + width) * 0.00390625F), (double)((float)(texV + height) * 0.00390625F)).color(red, green, blue, alpha).endVertex();
vertexbuffer.pos((double)(posX + width), (double)posY, 0.0D).tex((double)((float)(texU + width) * 0.00390625F), (double)((float)texV * 0.00390625F)).color(red, green, blue, alpha).endVertex();
vertexbuffer.pos((double)posX, (double)posY, 0.0D).tex((double)((float)texU * 0.00390625F), (double)((float)texV * 0.00390625F)).color(red, green, blue, alpha).endVertex();
Tessellator.getInstance().draw();
}
TileRenderCauldron.java 文件源码
项目:Bewitchment
阅读 14
收藏 0
点赞 0
评论 0
private void renderWater(ResourceLocation loc) {
final TextureAtlasSprite sprite = Minecraft.getMinecraft().getTextureMapBlocks().getAtlasSprite(loc.toString());
final Tessellator tessellator = Tessellator.getInstance();
tessellator.getBuffer().begin(GL11.GL_QUADS, DefaultVertexFormats.POSITION_TEX);
tessellator.getBuffer().pos(0, 16, 0).tex(sprite.getMinU(), sprite.getMaxV()).endVertex();
tessellator.getBuffer().pos(16, 16, 0).tex(sprite.getMaxU(), sprite.getMaxV()).endVertex();
tessellator.getBuffer().pos(16, 0, 0).tex(sprite.getMaxU(), sprite.getMinV()).endVertex();
tessellator.getBuffer().pos(0, 0, 0).tex(sprite.getMinU(), sprite.getMinV()).endVertex();
tessellator.draw();
}
HarshenClientUtils.java 文件源码
项目:harshencastle
阅读 23
收藏 0
点赞 0
评论 0
public static void drawTexture(int x, int y, float u, float v, float uWidth, float vHeight, int width, int height, float tileWidth, float tileHeight)
{
float f = 1.0F / tileWidth;
float f1 = 1.0F / tileHeight;
Tessellator tessellator = Tessellator.getInstance();
BufferBuilder bufferbuilder = tessellator.getBuffer();
bufferbuilder.begin(7, DefaultVertexFormats.POSITION_TEX);
bufferbuilder.pos((double)x, (double)(y + height), 0.0D).tex((double)(u * f), (double)((v + vHeight) * f1)).endVertex();
bufferbuilder.pos((double)(x + width), (double)(y + height), 0.0D).tex((double)((u + uWidth) * f), (double)((v + vHeight) * f1)).endVertex();
bufferbuilder.pos((double)(x + width), (double)y, 0.0D).tex((double)((u + uWidth) * f), (double)(v * f1)).endVertex();
bufferbuilder.pos((double)x, (double)y, 0.0D).tex((double)(u * f), (double)(v * f1)).endVertex();
tessellator.draw();
}
HarshenClientUtils.java 文件源码
项目:harshencastle
阅读 24
收藏 0
点赞 0
评论 0
public static void renderGhostBlock(IBlockState state, BlockPos position, Color color, boolean noDepth, float partialTicks)
{
if(!(state.getBlock() instanceof BlockLiquid) && !(state.getBlock() instanceof BlockFluidBase))
{
renderGhostModel(Minecraft.getMinecraft().getBlockRendererDispatcher().getModelForState(state), position, color, noDepth, partialTicks);
return;
}
GlStateManager.enableBlend();
GL11.glBlendFunc(GL11.GL_ONE, GL11.GL_ONE_MINUS_DST_COLOR);
BufferBuilder vb;
if(noDepth)
{
GlStateManager.depthFunc(519);
vb = prepRenderBlockDepth(partialTicks, true);
}
else
vb = prepRender(partialTicks, true);
vb.begin(7, DefaultVertexFormats.BLOCK);
World world = Minecraft.getMinecraft().world;
Minecraft.getMinecraft().getBlockRendererDispatcher().renderBlock(state, position.add(0, noDepth ? 500 : 0, 0), world, vb);
for(int i = 0; i < vb.getVertexCount(); i++)
vb.putColorMultiplier(color.getRed() / 255f, color.getGreen() / 255f, color.getBlue() / 255f, i);
vb.color(1, 1, 1, 0.1f);
postRender();
GlStateManager.disableBlend();
GlStateManager.depthFunc(515);
}
RenderUtils.java 文件源码
项目:Pangu
阅读 28
收藏 0
点赞 0
评论 0
/**
* Render Block with {@link Tessellator} and {@link BlockRendererDispatcher}
*/
public static void renderBlock(IBlockState state, BlockPos pos) {
Tessellator tessellator = Tessellator.getInstance();
BufferBuilder BufferBuilder = tessellator.getBuffer();
BufferBuilder.begin(GL_QUADS, DefaultVertexFormats.BLOCK);
BlockRendererDispatcher dispatcher = minecraft.getBlockRendererDispatcher();
dispatcher.renderBlock(state, pos, minecraft.world, BufferBuilder);
tessellator.draw();
}
GuiSlot.java 文件源码
项目:DecompiledMinecraft
阅读 19
收藏 0
点赞 0
评论 0
/**
* Overlays the background to hide scrolled items
*/
protected void overlayBackground(int startY, int endY, int startAlpha, int endAlpha)
{
Tessellator tessellator = Tessellator.getInstance();
WorldRenderer worldrenderer = tessellator.getWorldRenderer();
this.mc.getTextureManager().bindTexture(Gui.optionsBackground);
GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
float f = 32.0F;
worldrenderer.begin(7, DefaultVertexFormats.POSITION_TEX_COLOR);
worldrenderer.pos((double)this.left, (double)endY, 0.0D).tex(0.0D, (double)((float)endY / 32.0F)).color(64, 64, 64, endAlpha).endVertex();
worldrenderer.pos((double)(this.left + this.width), (double)endY, 0.0D).tex((double)((float)this.width / 32.0F), (double)((float)endY / 32.0F)).color(64, 64, 64, endAlpha).endVertex();
worldrenderer.pos((double)(this.left + this.width), (double)startY, 0.0D).tex((double)((float)this.width / 32.0F), (double)((float)startY / 32.0F)).color(64, 64, 64, startAlpha).endVertex();
worldrenderer.pos((double)this.left, (double)startY, 0.0D).tex(0.0D, (double)((float)startY / 32.0F)).color(64, 64, 64, startAlpha).endVertex();
tessellator.draw();
}
HarshenClientUtils.java 文件源码
项目:harshencastle
阅读 33
收藏 0
点赞 0
评论 0
public static IBakedModel getModel(ResourceLocation resourceLocation)
{
IBakedModel bakedModel;
IModel model;
try {
model = ModelLoaderRegistry.getModel(resourceLocation);
} catch (Exception e) {
throw new RuntimeException(e);
}
bakedModel = model.bake(TRSRTransformation.identity(), DefaultVertexFormats.BLOCK,
location -> Minecraft.getMinecraft().getTextureMapBlocks().getAtlasSprite(location.toString()));
return bakedModel;
}
GuiContainerChooseItem.java 文件源码
项目:ObsidianSuite
阅读 14
收藏 0
点赞 0
评论 0
private void drawCustomGui(double x, double y, double width, double height, double zLevel)
{
GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
Tessellator tessellator = Tessellator.getInstance();
BufferBuilder bufferbuilder = tessellator.getBuffer();
GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
bufferbuilder.begin(7, DefaultVertexFormats.POSITION);
bufferbuilder.pos(x + 0, y + height, zLevel).endVertex();
bufferbuilder.pos(x + width, y + height, zLevel).endVertex();
bufferbuilder.pos(x + width, y + 0, zLevel).endVertex();
bufferbuilder.pos(x + 0, y + 0, zLevel).endVertex();
tessellator.draw();
}
GuiSlot.java 文件源码
项目:BaseClient
阅读 23
收藏 0
点赞 0
评论 0
/**
* Overlays the background to hide scrolled items
*/
protected void overlayBackground(int startY, int endY, int startAlpha, int endAlpha)
{
Tessellator tessellator = Tessellator.getInstance();
WorldRenderer worldrenderer = tessellator.getWorldRenderer();
this.mc.getTextureManager().bindTexture(Gui.optionsBackground);
GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
float f = 32.0F;
worldrenderer.begin(7, DefaultVertexFormats.POSITION_TEX_COLOR);
worldrenderer.pos((double)this.left, (double)endY, 0.0D).tex(0.0D, (double)((float)endY / 32.0F)).color(64, 64, 64, endAlpha).endVertex();
worldrenderer.pos((double)(this.left + this.width), (double)endY, 0.0D).tex((double)((float)this.width / 32.0F), (double)((float)endY / 32.0F)).color(64, 64, 64, endAlpha).endVertex();
worldrenderer.pos((double)(this.left + this.width), (double)startY, 0.0D).tex((double)((float)this.width / 32.0F), (double)((float)startY / 32.0F)).color(64, 64, 64, startAlpha).endVertex();
worldrenderer.pos((double)this.left, (double)startY, 0.0D).tex(0.0D, (double)((float)startY / 32.0F)).color(64, 64, 64, startAlpha).endVertex();
tessellator.draw();
}