Tag: opengl es

C#+ GL控制混合背景与forms

我正在使用OpenGL的C#和OpenTK库,我想将GLControl与作为背景放置的图片框混合在一起。 *编辑* 我通过改变方法解决了加载源图像的问题,所以现在我使用位图和位图数据结构: Bitmap bitmap = new Bitmap(“image.png”); BitmapData data = bitmap.LockBits(new System.Drawing.Rectangle(0, 0, bitmap.Width, bitmap.Height), ImageLockMode.ReadOnly, System.Drawing.Imaging.PixelFormat.Format32bppArgb); 我确定我的png源有4个通道,黑色背景上的alpha值为0 这是原始图像: http : //imageshack.com/a/img801/517/u2z8.png 这就是问题所在: http : //imageshack.com/a/img40/1729/zezj.jpg top是使用GLControl的纹理,bottom是Windows Form的Picturebox,我想要做的是GLControl的黑色背景变得透明。 我把Blend cap启用并使用GL.BlendFunc(BlendingFactorSrc.SrcAlpha, BlendingFactorDest.OneMinusSrcAlpha); 所以我认为这不是问题。 也许问题出在纹理环境上? GL.TexEnv(TextureEnvTarget.TextureEnv, TextureEnvParameter.TextureEnvMode,GL_MODULATE);

将SurfaceTexture渲染为Unity Texture2D

我之前提出过simillar问题,但是他们并没有很好地澄清,现在我想建议我在我的代码中做错了什么。 所以我要做的是将SurfaceTexture从Android插件渲染到Unity Texture2D。 这是我的Unity代码: public class AndroidHandler : MonoBehaviour { [SerializeField] private RawImage _rawImage; private Texture2D _inputTexture; private AndroidJavaObject androidStreamerObj; private System.IntPtr _nativePtr; void Start () { _rawImage.material.SetTextureScale(“_MainTex”, new Vector2(-1, -1)); InitAndroidStreamerObject(); } private void InitAndroidStreamerObject() { androidStreamerObj = new AndroidJavaObject(“makeitbetter.figazzz.com.vitamiousing7.AndroidStreamer”); Int32 texPtr = androidStreamerObj.Call (“GetTexturePtr”); Debug.Log(“texture pointer? ” + texPtr); Texture2D nativeTexture = Texture2D.CreateExternalTexture […]