cocos2dx 离屏渲染
今天才发现 cocos2dx 有一个类叫做 CCRenderTexture,封装了 opengl render to texture 的 细节。 这个类的是采用 FBO ,把图像渲染到 自己新建的 frame buffer 来实现的。 如果写一个 shader ,比如让图像变成灰色,如果只给一个 CCSprite setShaderProgram()
今天才发现 cocos2dx 有一个类叫做 CCRenderTexture,封装了 opengl render to texture 的 细节。
这个类的是采用 FBO ,把图像渲染到 自己新建的 frame buffer 来实现的。
如果写一个 shader ,比如让图像变成灰色,如果只给一个 CCSprite setShaderProgram()的话,只能让单独的 Sprite 变成灰色,
但是如果想让整个游戏场景变成灰色,或者让其中一部分变成灰色,就需要使用 FBO 离屏渲染技术,把一些渲染的内容放到一个 FBO上,
然后绘制完成后,再放回到 最终的 frame buffer 中。
cocos2dx 封装了这些操作,具体用法是
1.实例化一个 CCRenderTexture* m_pRtt;
2.初始化时候,设置它的大小 m_pRtt = CCRenderTexture::create( width,height );
3.在 m_pRtt->begin() 和 m_pRtt->end() 之间,执行 opengl 绘制指令。
比如在当前场景的 update() 中,这样写:
m_pRtt->begin();
this->visit();
m_pRtt->end();
这样整个场景就绘制到了 m_pRtt 这个 RenderTexture 中
4. 如果需要给整个场景设置 shader ,则调用
m_pRtt->getSprite() ,给这个 Sprite setShaderProgram()即可。
这样,就可以实现 全屏高斯模糊 ,全屏变灰等 shader 的效果, 也可以用它实现屏幕截屏,保留上一帧图像等功能。
今天参考了这篇文章,才了解到 CCRenderTexture 的用法的
http://www.cocoachina.com/bbs/read.php?tid=237495
自己欠缺的是对 opengl FBO 真正的理解, 和对 shader 算法知识匮乏。
如果知识应用的话,利用这个方法,就可以在 cocos2dx 中写出一些漂亮的效果了。
按照自己上面说的做法,在 cocos2dx 3.0里面, 一旦给 render texture 增加自己写的 shader 后 ,出现了绘制不出来的情况。
暂时还不知道问题出在哪,初步感觉是自己写的 fragment shader 是存在错误的。。。但是还没查明错在哪里。
还是应该多去学习 opengl 底层知识才能解决这种 bug.

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

1. Mula-mula buka pelan reka bentuk yang akan diberikan dalam Kujiale. 2. Kemudian buka pemaparan paparan atas di bawah menu pemaparan. 3. Kemudian klik Ortogonal dalam tetapan parameter dalam antara muka paparan paparan atas. 4. Akhir sekali, selepas melaraskan sudut model, klik Render Now untuk memaparkan paparan atas ortogon.

Paparan halaman Vue adalah tidak segerak. Vue menggunakan pemaparan tak segerak, yang boleh meningkatkan prestasi; jika kemas kini tak segerak tidak digunakan, komponen semasa akan dipaparkan semula setiap kali data dikemas kini Atas sebab prestasi, Vue akan mengemas kini paparan secara tidak segerak selepas pusingan kemas kini data ini.

Ralat Vue: Tidak dapat menggunakan v-html dengan betul untuk memaparkan kod HTML dinamik, bagaimana untuk menyelesaikannya? Pengenalan: Dalam pembangunan Vue, kita selalunya perlu memaparkan kod HTML secara dinamik untuk memaparkan kandungan teks kaya atau input pengguna yang dijana secara dinamik. Vue menyediakan arahan v-html untuk melaksanakan fungsi ini. Walau bagaimanapun, kadangkala kami mungkin menghadapi masalah yang tidak dapat menghasilkan kod HTML dinamik menggunakan v-html dengan betul. Artikel ini akan meneroka punca masalah ini dan memberikan penyelesaian. Penerangan masalah: Dalam Vue, apabila kami menggunakan v

Redis ialah pangkalan data nilai kunci berprestasi tinggi Melalui storan data yang pantas dan keupayaan akses, ia digunakan secara meluas dalam proses pendaftaran dan penemuan perkhidmatan. Pendaftaran dan penemuan perkhidmatan adalah proses yang sangat penting dalam sistem teragih. Apabila kami menjalankan berbilang perkhidmatan pada mesin, kami memerlukan cara untuk pelanggan menemui perkhidmatan ini dan cara berinteraksi dengan mereka. Dalam sistem teragih yang lengkap, mungkin terdapat berpuluh-puluh perkhidmatan yang sedang berjalan, dan konfigurasi manual telah menjadi tidak dapat dilaksanakan. Pada masa ini, kita perlu menggunakan pendaftaran perkhidmatan dan penemuan.

Dalam Vue3, v-for dianggap sebagai cara terbaik untuk memaparkan data senarai. v-for ialah arahan dalam Vue yang membolehkan pembangun melelang melalui tatasusunan atau objek dan menjana sekeping kod HTML untuk setiap item. Arahan v-for ialah salah satu arahan templat paling berkuasa yang tersedia untuk pembangun. Dalam Vue3, arahan v-for telah dioptimumkan lagi, menjadikannya lebih mudah untuk digunakan dan lebih fleksibel. Perubahan terbesar bagi arahan v-for dalam Vue3 ialah pengikatan elemen. Dalam Vue2, gunakan arahan v-for

Ralat Vue: Tidak dapat menggunakan v-html dengan betul untuk memaparkan kod HTML, bagaimana untuk menyelesaikannya? Vue ialah rangka kerja JavaScript popular yang boleh membantu kami membina antara muka pengguna interaktif. Dalam Vue, kita boleh menggunakan arahan v-html untuk menjadikan kod HTML ke dalam templat. Walau bagaimanapun, kadangkala kami mungkin menghadapi masalah: kod HTML tidak boleh dipaparkan dengan betul menggunakan v-html. Artikel ini akan menerangkan beberapa sebab dan penyelesaian biasa untuk membantu anda menyelesaikan masalah ini. Alasan pertama yang mungkin adalah bahawa

Bagaimana untuk menggunakan Vue untuk mencapai penggredan imej dan pemprosesan pemaparan? Gambaran Keseluruhan Dalam pembangunan aplikasi web moden, pemprosesan imej adalah keperluan yang sangat biasa. Menggunakan Vue.js, rangka kerja JavaScript yang popular, ia menjadi sangat mudah dan cekap untuk melaksanakan penggredan imej dan pemprosesan pemaparan. Artikel ini akan menunjukkan cara melaksanakan penggredan imej dan pemprosesan pemaparan melalui Vue.js dan disertakan dengan contoh kod. Langkah 1: Buat contoh Vue Pertama, kita perlu mencipta tika Vue untuk mengurus data dan logik imej. dalam HT

Kesan lukis semula dan aliran semula pada fasa pemaparan: siapa yang lebih penting? Apabila halaman web dipaparkan, penyemak imbas melakukan satu siri operasi dalam susunan tertentu untuk memaparkan kandungan halaman. Antaranya, lukisan semula dan aliran semula adalah dua langkah penting dalam proses pemaparan. Artikel ini akan meneroka kesan lukis semula dan aliran semula pada fasa pemaparan dan menganalisis kepentingannya. Maksud dan perbezaan redraw dan reflow Sebelum memahami kesan redraw dan reflow terhadap rendering, mari kita fahami maksud dan perbezaannya dahulu. Cat semula merujuk kepada apabila gaya elemen berubah, tetapi ia tidak menjejaskan
