콘텐츠로 건너뛰기

Custom Mipmap encoding practice.

此示例不是生产级别。该示例可以在生产级别使用,但是可以通过添加更有效的功能将其升级到完整的生产级别功能。
This example is not a production level.
This example can be used at the production level, but it can be upgraded to a full production level function by adding more efficient features.

实验目的。
公司内部还没有请求,但是我们根据JP Friends Company项目团队提出的类似要求进行研究。
通过改善Unity mipmap过滤的质量并改善模糊的Texel采样,我们希望改善更清晰的法线贴图表达(中等距离)或Albedo表达。
在粗糙的情况下,不需要改进。

Purpose of experiment.
There is no request from within our company yet, but we study this based on the similar demand that arose from the project team of JP Friends Company.
By improving the quality of Unity mipmap filtering and improving the ambiguous Texel sampling, we want to improve a more clear normal map expression (medium distance) or Albedo expression.
In the case of roughness, there is no need to improve.

Preview of concept demonstration.

在上面的代码中,有用于预处理步骤和后处理步骤的功能。

如果您看一下代码,它会将 @”.mip(\d)+$”  作为子字符串处理。

预处理文件由filename.mipNum.format组成。

换句话说,需要以下结构的文件来计算用户mipmap。

originalTex.png

originalTex.mip1.png

originalTex.mip2.png

originalTex.mip3.png

originalTex.mip12.png

必须满足上述格式。

In the code above, there are functions for the pre-processing step and the post-processing step.

If you look at the code, it is processing @”.mip(\d)+$” as a substring.

The preprocessed file consists of filename.mipNum.format.

In other words, a file with the following structure is required to calculate the user mipmap.

originalTex.png

originalTex.mip1.png

originalTex.mip2.png

originalTex.mip3.png

.

.

originalTex.mip12.png

The format above must be satisfied.

有必要将其提高到生产水平。
让我们与DEVOPS团队合作。

It is necessary to raise it to the production level.

Let’s work with the DEV-OPS team.

将通过修改Mip级别获得的结果与默认设置结果进行比较

Compare the result obtained by modifying the Mip level with the default setting result

On the left, a custom mip-chain was applied, and on the right, the mip-chain result directly created by Unity.
All aniso level = 0 and Kaiser filter is applied.
左侧应用了自定义Mip链,右侧应用了Unity直接创建的Mip链结果。
所有aniso级别= 0,并应用Kaiser滤波器。

我们了解了上述方法。

学习了此后,TA可以得到什么想法?

我们如何在渲染纹理像素的过程中应用以上概念?

如果您无法创建想法,那么程序员和TA之间有什么区别?

让我们想想。

此外,可以使用DCC程序进一步开发它。

在此过程中,您可以理解TA是超越程序员思想极限的人。

We learned the above approach.

What ideas can TA get after learning this?

How can We apply the above concept in the process of rendering texels?

If you can’t create an idea, what’s the difference between a programmer and a TA?

Let’s think.

In addition, it can be further developed by using the DCC program.

In this process, you can understand that TAs are people who go beyond the limits of programmers’ ideas.

Further learning.
Mip chain is easily produced using SD.
Create a mip chain generator using SD and create a template.

Addition reading reference documents.

https://code.google.com/archive/p/nvidia-texture-tools/wikis/ApiDocumentation.wiki

https://developer.nvidia.com/gpugems/gpugems2/part-iii-high-quality-rendering/chapter-28-mipmap-level-measurement

https://developer.nvidia.com/nvidia-texture-tools-exporter

댓글 남기기

%d 블로거가 이것을 좋아합니다: