LayaBox CommandBuffer描边使用详细

本文分享了使用LayaBox为3D物体实现动态描边功能的详细过程,包括所需引擎版本、引入BlurShader库的步骤,以及如何通过CommandBuffer_Outline类进行添加和移除描边效果。
摘要由CSDN通过智能技术生成

项目需要使用LayaBox做一个给3D物体动态描边的一个功能,前前后后踩了一些坑算是把这个东西给做出来了把我改好的代码贴上,分享给大家。
(1)想要使用描边你的引擎版本必须 >=2.9.0
(2)你必须下载 Laya官方的BlurShader库才能使用这个功能,下载地址:https://github.com/layabox/layaair-demo/tree/master/h5/3d/ts/LayaAir3D_PostProcess/BlurShader
下载完之后把BlurShader放到自己项目的代码目录里使用

以下是我使用 CommandBuffer_Outline 的类,使用的时候调用 AddCommandBuffet_Outline(要描边的物体),不用的时候记得调用RemoveCommandBuffer_Outline移除掉

import InsManager from "../manager/InsManager";
import {
    BlurEffect, BlurMaterial } from "../shader/BlurShader/BlurEffect";

export class CommandBuffer_Outline {
   

	private commandBuffer: Laya.CommandBuffer;
	private cameraEventFlag: Laya.CameraEventFlags = Laya.CameraEventFlags.BeforeImageEffect;
	private camera: Laya.Camera;

	private renders:Laya.BaseRender[]  = [];
	private materials:Laya.Material[] = [];

	private viewPort: Laya.Viewport = null;

	public static instance: CommandBuffer_Outline ;

	private isUseOuline: boolean = true; // 控制是否使用描边
	
    public static GetInstance(): CommandBuffer_Outline{
   
		if(this.instance == null) this.instance = new CommandBuffer_Outline();
		return this.instance;
	}

	public init(): void {
   
        //使用之前必须先初始化 
        if(this.camera == null){
   
			BlurEffect.init();
			this.camera = InsManager.GetInstance()._SceneManager.player.playerCamera; //传入你照射物体的相机
			this.viewPort = this.camera.viewport;
		    //Laya.Shader3D.debugMode = true;
		}
	}

	private renderTexture: Laya.RenderTexture = null;
	private subRendertexture: Laya.RenderTexture = null;
	private downRenderTexture: Laya.RenderTexture = null;
	private blurTexture: Laya.RenderTexture = null;
	private buf: Laya.CommandBuffer = null;

	public createDrawMeshCommandBuffer(camera:
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
在实现TextView描边的过程中,可以使用drawable文件来定义边框效果。你可以创建一个名为edge.xml的drawable文件,并在其中设置背景色、圆角和边框。例如,可以使用以下代码来定义一个具有描边效果的TextView: ```xml <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <!-- 设置背景色 --> <!-- <solid android:color="@color/colorGrey" /> --> <!-- 设置四周圆角 --> <corners android:topLeftRadius="5dp" android:topRightRadius="5dp" android:bottomRightRadius="5dp" android:bottomLeftRadius="5dp"/> <!-- 设置边框 --> <stroke android:width="1dp" android:color="#FFFFFFFF" /> </shape> ``` 然后,在你的布局文件中,将这个drawable文件作为TextView的背景即可实现描边效果。例如: ```xml <androidx.cardview.widget.CardView android:layout_width="210dp" android:layout_height="wrap_content" android:background="@drawable/edge" app:cardElevation="1dp"> <!-- 这里自由发挥,写上你需要填充的控件 --> </androidx.cardview.widget.CardView> ``` 这样,你就可以在TextView周围添加描边效果了。 #### 引用[.reference_title] - *1* *3* [Android 控件描边、加阴影](https://blog.csdn.net/weixin_54723630/article/details/126907993)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [TextView描边、渐变、阴影效果](https://blog.csdn.net/qq_21154101/article/details/103043829)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值