Forum Replies Created
-
AuthorPosts
-
试试在triangle.hpp最前面加一行
#pragma once如果指加载,拿个图像库,比如stb,查查api,然后调用一下,开个指针,加载到内存里。
如果指叠在渲染结果上,你自己写shader控制法则
d3d gl矩阵不一样的,人家左右手系都不一样
哈哈哈真可爱,你矩阵贴出来看看
This post has received 1 vote up.你这样理解,ssaa就是个暴力法,4xssaa就是像素x4,其他流程不变,最后做个平均
是这样的,你一个像素拆四个像素,这四个像素的深度值不一定一样啊,三角形又不是永远正对着你,你要做下差值再运算的
正负应该是在面的一侧还是另一侧,正负号相同说明两个点同侧。
我猜的。MSAA在极端情况下等于SSAA,具体可以知乎搜搜,然后看看rtr4里面关于抗锯齿那块
不是,他问的作业5,作业5是whitted style,是发射射线来做阴影的
我猜测你想问的是为什么要保留摄像机后面的部分,是这样,-1到0这段我们不用的。
另外ndc是把frustum压成一个cube,然后再加个平移到原点,你想象一下这个压缩的过程,这样画有歧义。然后压缩完了,你其实不用太在意camera现在的坐标(0,0),因为其实已经没摄像机什么事了,下一步就是开始进管线做着色了
对着矩阵推一边,肯定就清楚了。gl和dx对ndc的处理好像不太一样。记不太清了。投影矩阵错了呗
那个是shadow ray
修改起来很方便,把xy以及射线的生成挪到spp循环内部就行了,这样可以节省一次循环
for (int k = 0; k < spp; k++){ //generate primary ray direction float x = (2 * (i + get_random_float()) / (float)scene.width - 1) * imageAspectRatio * scale; float y = (1 - 2 * (j + get_random_float()) / (float)scene.height) * scale; Vector3f dir = normalize(Vector3f(-x, y, 1)); auto index = j*scene.width + i; framebuffer[index] += scene.castRay(Ray(eye_pos, dir), 0) / spp; }
在低spp情况下也能获取不错的效果
Attachments:
You must be logged in to view attached files.对哦,有道理!我的xy在spp的循环内都是不变的,我太蠢了先前没想到,谢谢大佬解答!
- This reply was modified 4 years, 6 months ago by oxine.
有条件的同学试着跑跑看吧,我想不明白了…
说的没错,我是这样的
if ((insec_light.distance - Scene::intersect(Ray(hitPoint, ws)).distance)<EPSILON) {// if not blocked
能得到正确的结果,注意insec_light.distance
需要手动赋值
insec_light.distance = (insec_light.coords - hitPoint).norm();
This post has received 1 vote up.原来的代码不是这样的嘛
// Vector t = (x*y/sqrt(x*x+z*z),sqrt(x*x+z*z),z*y/sqrt(x*x+z*z))
其实把y分量取minus就行了,
// Vector t = (x*y/sqrt(x*x+z*z),-sqrt(x*x+z*z),z*y/sqrt(x*x+z*z))
你再和normal dot一下看看垂不垂直This post has received 1 vote up.不是ztest的问题。
这是由obj文件格式所导致的,在这个文件中每4个顶点表示一个quad,一个cube一共是6个面f 5/1 6/2 2/3 1/4 f 6/1 7/2 3/3 2/4 f 7/1 8/2 4/3 3/4 f 8/1 5/2 1/3 4/4 f 1/1 2/2 3/3 4/4 f 8/1 7/2 6/3 5/4
而我们的程序在main函数中读入的时候,把每三个顶点装配成一个三角形,所以上面用24个点表示的24/4个quad会被表示成24/3个三角形,也就是8个三角形。
所以要么修改程序使其支持quad的装配,要么修改obj文件如下:
f 5/1 2/3 6/2 f 5/1 1/4 2/3 f 6/1 3/3 7/2 f 6/1 2/4 3/3 f 7/1 4/3 8/2 f 7/1 3/4 4/3 f 8/1 1/3 5/2 f 8/1 4/4 1/3 f 1/1 3/3 2/2 f 1/1 4/4 3/3 f 8/1 6/3 7/2 f 8/1 5/4 6/3
This post has received 3 votes up.Attachments:
You must be logged in to view attached files. -
AuthorPosts